J’ai besoin d’une dépendance JAR dans le dossier WEB-INF/lib
x-1.0.final.jar
WAR généré par Maven sous la forme x-1.0.final.jar
au lieu de x-1.0.jar
, qui est son nom dans le référentiel. Quel serait le meilleur moyen d’y parvenir?
Dans mon POM j’ai:
foo x 1.0
Je veux que cela apparaisse dans le dossier WEB-INF/lib
tant que x-1.0.final.jar
.
C’est une dépendance externe vis-à-vis de Maven Central sur laquelle je n’ai aucun contrôle. De plus, je ne veux pas forcer tous ceux qui l’utilisent à redéployer la dépendance dans leurs référentiels locaux.
Existe-t-il un plugin Maven que je pourrais utiliser ou devrais-je commencer à coder le mien?
Vous pouvez utiliser maven-dependency-plugin
pour inclure un artefact sous le nom dont vous avez besoin.
org.apache.maven.plugins maven-dependency-plugin copy foo x 1.0 jar ${project.build.directory}/${project.build.finalName}/WEB-INF/lib x-1.0.final.jar
Par défaut, maven-dependency-plugin
est lié à la process-sources
qui semble juste assez pour votre tâche. N’oubliez pas de définir la scope provided
pour l’artefact dans les dépendances afin qu’elle ne soit pas automatiquement incluse par le plug-in war
.
Vous voudrez peut-être voir si le paramètre outputFileNameMapping du plug – in maven war peut vous aider.
Désolé, je ne comprends pas bien votre question. Quel est le code que vous avez pour importer ce pot dans le POM?
Si le fichier JAR que vous souhaitez importer est appelé dans le référentiel et que vous importez le fichier correct dans votre POM, vous ne devriez pas avoir à vous soucier des conventions de dénomination du fichier JAR.
Ce que je pense que vous devrez peut-être faire, c’est renommer le fichier dans le référentiel. Pour ce faire, il vous suffit de vous rendre dans le répertoire Utilisateurs du référentiel / .m2 dans une fenêtre de l’explorateur, de rechercher le fichier et de le renommer. Notez que cela peut avoir des conséquences sur d’autres projets. .
Ce que je vous suggère de faire, c’est de copier le fichier, de le renommer et de l’append au référentiel avec le nouvel identifiant d’artefact x-1.0.final.jar.
mvn install:install-file -Dfile= -DgroupId= \ -DartifactId= -Dversion= -Dpackaging=
remplissez le <>
J’espère que cela aide Chris
Je sais que je réponds à un ancien fil de discussion, mais j’avais besoin d’exécuter ce qui précède et j’ai trouvé ce fil utile. Pour y parvenir, j’ai procédé en 2 étapes:
Ainsi, à titre d’illustration, voici comment spécifier le fichier que vous souhaitez exclure. Dans ce cas x-1.0.jar:
org.apache.maven.plugins maven-war-plugin 2.6 WEB-INF/lib/x-1.0.jar
Indiquez également qu’une copie du fichier doit être effectuée sous le nouveau nom (x-1.0.final.jar), mais cette opération doit être exécutée AVANT que le conditionnement ait lieu. Ceci est spécifié par la phase: ‘prepare-package’:
org.apache.maven.plugins maven-dependency-plugin prepare-package copy the group of the x jar x jar ${project.build.directory}/${project.build.finalName}/WEB-INF/lib x-1.0.final.jar
Dans mon exemple, je n’étais pas en codage dur 1.0 mais je pense que cela devrait fonctionner pour la question des affiches originales.