J'ai un projet dans lequel j'essaye de créer un fichier zip de distribution, qui contient (parmi d'autres fichiers) un fichier exécutable avec les dépendances de mon projet java.maven-assembly plugin - comment créer des assemblages imbriqués
Je veux en quelque sorte à ressembler à ceci:
-wiki-search-1.0.0-dist.zip
-wiki-search.bat
-wiki-search-help.html
-wiki-search-1.0.0-jar-with-dependencies.jar
-jar content...
J'utilise le plugin de montage, et le descripteur prédéfini « jar-with-dépendances » pour créer mon fichier jar exécutable.
Je spécifie une entrée de plugin d'assembly séparée dans mon pom, référençant un descripteur personnalisé pour essayer de construire le fichier zip distribuable.
Ainsi, la partie de mon pom ressemble à ceci:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>quicksearch.QuickSearchApp</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>attached</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>src/main/assembly/dist.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>attached</goal>
</goals>
</execution>
</executions>
</plugin>
Et mon descripteur personnalisé ressemble à ceci:
<assembly>
<id>dist</id>
<formats>
<format>tar.gz</format>
<format>tar.bz2</format>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<includes>
<include>${project.basedir}/target/wiki-search-0.0.1-SNAPSHOT-jar-with-dependencies.jar</include>
</includes>
<outputDirectory>.</outputDirectory>
</fileSet>
<fileSet>
<directory>${project.basedir}/src/main/etc</directory>
<includes>
<include>*</include>
</includes>
<outputDirectory></outputDirectory>
</fileSet>
</fileSets>
</assembly>
Tout fonctionne très bien. Le pot avec dépendances est en cours de construction. Mon fichier zip dist est en cours de construction. Mais le fichier zip dist ne contient pas le fichier jar-with-dependencies.
+1 très belle et réponse détaillée –
Légende . A travaillé la première fois. À votre santé. – Ben
Merci! Existe-t-il un moyen d'y parvenir sans attacher l'exécution au cycle de vie par défaut? Le simple fait d'omettre les éléments «phase» et «objectifs» n'a pas fonctionné pour moi. –