Создание архива zip знатока “предназначается” для каталога

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

Какой-либо вход?

33
задан Yaneeve 29 March 2012 в 14:51
поделиться

2 ответа

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

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

Лично я бы просто использовал 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>
56
ответ дан 27 November 2019 в 18:02
поделиться

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

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

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

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

14
ответ дан 27 November 2019 в 18:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: