Maven - развернуть цель файла - PullRequest
1 голос
/ 25 июня 2011

У меня есть проект maven, в котором некоторые xlsx файлы генерируются после фазы запуска проекта. Эти таблицы Excel используются и в других проектах. Поэтому мне нужно опубликовать эти артефакты листа Excel в удаленном | локальном репозитории.

Я попытался использовать цель deploy-файла плагина deploy. Но после развертывания листа Excel в качестве баночки в репо я попытался извлечь банку и увидел, что лист Excel поврежден. Лист Excel преобразован в несколько файлов XML. (Sheet1.xml, Sheet2.xml ..)

Команда Maven: -

mvn clean deploy: deploy-file -Durl = file: /// C: \ repository -Dfile = Series.xlsx -DpomFile = seriesXL.pom

SeriesXL.pom: -

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.test.pjt</groupId>
  <artifactId>seriesXL</artifactId>
  <version>1.0</version>
  <packaging>jar</packaging>

 <build>
  <plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.3.1</version>
    <configuration>
        <includes>
            <include>*.xlsx</include>
        </includes>
    </configuration>
</plugin>
  </plugins>

</build> 


    <dependencies>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.6</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.6</version>
        </dependency>
    </dependencies>

</project>

Пожалуйста, помогите мне решить эту проблему. Все материалы приветствуются.

Ответы [ 2 ]

1 голос
/ 26 июня 2011

Microsoft пытается внедрить новые форматы файлов, использующие ZIP и XML, в своих офисных пакетах.Этот метод уменьшает размер файла примерно на 50%.

Ссылка

Это означает, что файл Excel на самом деле представляет собой упакованный файл с различной информацией xmls и другой метаданной.

Я обошел вокругрешить проблему:

  1. После создания листа Excel я добавил этот файл в zip (SeriesXL.zip), используя java.util.zip.ZipEntry.

  2. Затем разверните zip-файл с помощью команды

    mvn clean deploy:deploy-file -Durl=file:///C:\repository -Dfile=SeriesXL.zip -DgroupId=com.test.pjt -DartifactId=seriesXL -Dversion=1.0 -Dpackaging=jar
    

Я могу успешно развернуть SeriesXL.jar в локальном репозитории, и при извлечении jar я увидел исходную версиюлиста Excel, а не просто пакет XML-файлов.

Кстати, спасибо Данни за вашу поддержку.

1 голос
/ 26 июня 2011

Это потому, что с помощью команды deploy-file ваш pom игнорируется. Вы должны запустить mvn deploy, чтобы вызывался maven-jar-plugin (по умолчанию он вызывается на этапе пакета).

С помощью вашей команды вы развертываете xslx непосредственно в своем хранилище, и я подозреваю, что он обрабатывается как jar, поэтому вы получите xml, если распакуете jar (потому что xlsx - это также просто упакованный файл, который состоит из различных XML-файлов).

Я бы рекомендовал вам прочитать несколько документов о жизненных циклах Maven и т. Д. ( Жизненные циклы Maven )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...