J’ai une base de code que je veux dissortingbuer comme jar. Il dépend également des jars externes, que je veux regrouper dans le jar final.
J’ai entendu dire que cela pouvait être fait en utilisant maven-assembly-plug-in
, mais je ne comprends pas comment. Quelqu’un pourrait-il m’indiquer quelques exemples?
En ce moment, j’utilise un bac à graisse pour regrouper le pot final. Je veux réaliser la même chose en utilisant maven.
Ajoutez le plugin suivant à votre pom.xml
La dernière version peut être trouvée à https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-assembly-plugin
... org.apache.maven.plugins maven-assembly-plugin CHOOSE LATEST VERSION HERE jar-with-dependencies assemble-all package single
Après avoir configuré ce plug-in, l’exécution de mvn package
produira deux jars: un contenant uniquement les classes de projet et un second fichier jar contenant toutes les dépendances avec le suffixe “-jar-with-dependencies”.
si vous voulez une configuration correcte du classpath
à l’exécution, ajoutez également le plug-in suivant
org.apache.maven.plugins maven-jar-plugin true fully.qualified.MainClass
Vous pouvez utiliser le plugin maven-shade-plugin .
Après avoir configuré le plug-in dans votre build, le mvn package
commande créera un seul jar avec toutes les dépendances fusionnées.
Peut-être que vous voulez maven-shade-plugin
, regrouper les dépendances, minimiser le code inutilisé et masquer les dépendances externes pour éviter les conflits.
org.apache.maven.plugins maven-shade-plugin 3.1.1 package shade true true ${java.io.tmpdir}/dependency-reduced-pom.xml com.acme.coyote hidden.coyote
Les références:
en fait, en ajoutant le
true com.some.pkg com.MainClass
déclaration à maven-jar-plugin n’ajoute pas l’entrée de classe principale au fichier manifeste pour moi. Je devais l’append au plugin maven-assembly afin d’obtenir cela dans le manifeste
Vous pouvez utiliser le plugin onejar-maven pour le packaging. Fondamentalement, il assemble votre projet et ses dépendances en un seul jar, y compris non seulement votre fichier JAR de projet, mais aussi toutes les dépendances externes en tant que “jar of jars”, par exemple
com.jolira onejar-maven-plugin 1.4.4 one-jar
Note 1: Les options de configuration sont disponibles sur la page d’accueil du projet.
Note 2: Pour une raison ou pour une autre, le projet onejar-maven-plugin n’est pas publié sur Maven Central. Cependant, jolira.com suit le projet original et le publie avec le groupId com.jolira
.
Une alternative consiste à utiliser le plugin maven shade pour créer un uber-jar
.
org.apache.maven.plugins maven-shade-plugin Your Version Here package shade