web-dev-qa-db-fra.com

Création d'une archive Zip du répertoire "cible" de maven

Je souhaite créer une archive Zip de mon répertoire "cible" ($ {project.build.directory). utiliser le plugin maven-Assembly me semble exagéré pour une tâche aussi simple (et un peu compliquée - pourquoi dois-je utiliser un autre fichier, le descripteur d'assembly, pour une telle tâche) Je ne peux pas localiser le plus simple apparemment - maven-Zip-plugin dans le référentiel http://repo1.maven.org/maven2 .

Une entrée?

33
Yaneeve

Si le descripteur d'assemblage prédéfini bin ne correspond pas à vos besoins, vous avez trois options:

  1. Utilisation du plug-in maven-Assembly - Le plug-in maven-Zip n'est jamais sorti car le plug-in Assembly peut faire tout ce que le plug-in Zip faisait, et plus encore, voir MNG-224 .
  2. Utilisation du plugin maven-antrun (et peut-être du plugin build-helper pour attacher le Zip) - Il y a un exemple ici (et cela semble plus détaillé que le plugin Assembly à la fin).
  3. Écrire votre propre plugin - pourquoi feriez-vous cela lorsque vous avez le plugin Assembly.

Personnellement, je voudrais simplement utiliser le plugin maven-Assembly avec le Zip.xml descripteur:

<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>

Et dans votre 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
Pascal Thivent

Si vous n'avez pas de besoins "spéciaux" pour le fichier .Zip généré, vous pouvez utiliser l'un des descripteurs Maven Assembly prédéfinis. Les descripteurs d'assemblage prédéfinis permettent de créer facilement et rapidement des assemblages spécifiques sans avoir à fournir votre propre descripteur d'assemblage. Supposons que vous vouliez utiliser le descripteur prédéfini bin. Ensuite, dans la section plugins de la section build de votre POM, vous pouvez simplement ajouter ce qui suit.

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

Bien sûr, comme toujours avec Maven, si vous voulez faire quelque chose au-delà de la configuration par défaut, vous devrez créer votre propre configuration, et dans ce cas, cela signifie votre propre descripteur d'assembly.

La liste des descripteurs prédéfinis est documentée ici .

14
RTBarnard