-
Packaging jar maven
Bonjour,
Je travaille sur un projet maven dont le livrable est un jar. Il faut que certaines de mes dépendances soient intégrées à mon jar pour qu'il puisse fonctionner.
Dans le pom.xml j'ai spécifié le scope compile (normalement par défaut) au dépendances devant être intégrées pourtant maven n'intègre pas les jar dans le jar construit (contrairement à ce que j'ai lu dans la doc).
La version de maven est la 2.0.8.
que dois-je faire pour qu'il intègre les libs dans le jar?
Merci!
-
Non, Maven ne va pas placer tes dépendances dans ton JAR !
Si ton projet avait été un WAR, là ok, les dépendances seraient dans ton WEB-INF/lib.
Tu peux ainsi :
1. Soit faire en sorte que le JAR soit exécutable (voir ici).
2. Soit faire un uber-Jar, c'est-à-dire un JAR contenant les dépendances, grâce au plugin shade.
-
En général, on inclue pas de jar dans un jar.
On inclue des jars dans un war ou ear mais pas dans un jar.
-
Effectivement mettre des jars dans des jars n'est pas très élégant, néanmoins il faut que je m'assure lors du déploiement que les libs utilisées sont dispo dans l'environnement d'exécution. Ce qui déplace le problème des dépendances que maven résout admirablement.
Merci pour l'aide, je vais donc rester dans les normes et ne pas intégrer les librairies.
++
-
Bonjour,
Une solution peut-être d'utiliser maven-assembly-plugin
Cela permet de construire un zip ou tar.gz prêt à l'emploi (enfin, il reste quand même à décompresser le tout avant usage tout de même)
Si votre projet est une application Java ou même une simple librairie, peut-être qu'assembly pourra vous permettre de produire un livrable complet (jar + dépendances + docs + information de licence + ... si affinité ;o)
Pour plus d'info :
http://maven.apache.org/plugins/maven-assembly-plugin/
Cordialement,
Guillaume WALLET.