Подтвердить что ты не робот

Создание zip-архива каталога "target" maven

Я хочу создать zip-архив моего "целевого" каталога ($ {project.build.directory). использование maven-assembly-plugin кажется мне излишним для такой простой задачи (и немного сложной - почему я должен использовать другой файл, дескриптор сборки, для такой задачи) Я не могу найти более простой maven-zip-plugin в http://repo1.maven.org/maven2.

Любой вход?

4b9b3361

Ответ 1

Если предопределенный дескриптор сборки bin не подходит вашим потребностям, у вас есть три варианта:

  • Использование maven-assembly-plugin - maven-zip-plugin никогда не появлялся, потому что плагин сборки мог делать все, что делал плагин zip, и многое другое, см. MNG-2243.
  • Использование maven-antrun-plugin (и, возможно, build-helper-plugin для прикрепления zip). Здесь приведен пример здесь ( и это выглядит более подробным, чем плагин сборки в конце).
  • Написание собственного плагина - зачем вы это делаете, когда у вас есть плагин сборки.

Лично я просто использовал maven-assembly-plugin со следующим дескриптором zip.xml:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
  <id>bin</id>
  <baseDirectory>/</baseDirectory>
  <formats>
    <format>zip</format>
  </formats>
  <fileSets>
    <fileSet>
      <directory>${project.build.directory}</directory>
    </fileSet>
  </fileSets>
</assembly>

И в вашем POM:

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>2.6</version>
  <configuration>
    <descriptors>
      <descriptor>src/main/assembly/zip.xml</descriptor>
    </descriptors>
  </configuration>
  <executions>
    <execution>
      <id>make-assembly</id> <!-- this is used for inheritance merges -->
      <phase>package</phase> <!-- append to the packaging phase. -->
      <goals>
        <goal>single</goal> <!-- goals == mojos -->
      </goals>
    </execution>
  </executions>
</plugin>

Ответ 2

Если у вас нет "особых" потребностей для сгенерированного файла .zip, вы можете использовать один из предопределенных дескрипторов сборки Maven. Предварительно определенные дескрипторы ассемблеров облегчают быстрое и легкое создание определенных сборок без необходимости предоставления собственного дескриптора сборки. Предположим, вы хотели использовать предопределенный дескриптор bin. Затем в разделе plugins вашего раздела POM build вы можете просто добавить следующее.

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>2.6</version>
  <configuration>
    <descriptorRefs>
      <descriptorRef>bin</descriptorRef>
    </descriptorRefs>
  </configuration>
</plugin>

Конечно, как всегда с Maven, если вы хотите сделать что-то помимо конфигурации по умолчанию, вам придется создать свою собственную конфигурацию, и в этом случае это означает ваш собственный дескриптор сборки.

Список предопределенных дескрипторов документирован здесь.