J'utilise le plugin maven Assembly pour générer un .tar
Le fichier contient plusieurs autres fichiers, des jars dépendants. Tous les fichiers sont copiés correctement dans les dossiers donnés dans la configuration Assembly.xml
.
Je voudrais également inclure le bocal du projet d'origine dans le fichier tar final, mais je ne le vois pas actuellement.
Je reçois le message suivant lorsque j'émets Assembly:single
objectif:
[AVERTISSEMENT] Impossible d'inclure l'artefact du projet: com.my.newpkg.project1: jar: 0.0.3.0; il n'a pas de fichier ou de répertoire associé.
Après avoir lu SO, il semble ajouter les configurations suivantes à pom.xml
devrait ajouter le pot, mais n'obtient toujours pas le résultat attendu.
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>com.my.newpkg.project1.MainClass</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
<formats>
<format>dir</format>
<format>tar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
<excludes>
<exclude>junit:junit</exclude>
</excludes>
<fileMode>0755</fileMode>
</dependencySet>
</dependencySets>
Alors, les configs ne sont pas encore correctes? ou est-ce que je manque quelque chose ici?
Comment pouvons-nous ajouter le pot de projet actuel dans le tar final
Dans <dependencySet>
vous pouvez exclure le fichier de projet en cours en disant <useProjectArtifact>false</useProjectArtifact>
, mais c'est vrai par défaut, donc ça devrait marcher.
D'après l'avertissement, je suppose que vous avez oublié de faire mvn package
d'abord, de sorte que le fichier jar n'est pas disponible dans le répertoire cible.
Ou faites mvn package Assembly:single
en une seule commande.
Alternativement, ajoutez maven-Assembly-plugin dans votre pom et liez-le à la phase "package" afin qu'il se déclenche automatiquement sur mvn package
:
<plugin>
<artifactId>maven-Assembly-plugin</artifactId>
<executions>
<execution>
<id>tar-Assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>etc/Assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>