Projet Maven variables pour les dépendances
J'ai un fichier html qui charge une applet. Le code html doit se référer à la jarre par son nom, et depuis maven noms sur la base de la artifactid, version, etc, le code html doit être mis à jour dynamiquement à mesure que le projet évolue. Il semble comme le filtrage des ressources est le chemin à parcourir, mais je ne peux pas comprendre ce que la variable d'interpoler devrait ressembler. J'aimerais quelque chose le long des lignes de ${projet.les dépendances.myartifactid.version}, mais ça ne semble pas être une option, et j'ai eu lamentable chance googler.
OriginalL'auteur Erik Ackerman | 2010-02-10
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin de quelque chose comme
${project.dependencies[0].artifactId}
où0
est l'indice de la dépendance de l'applet dans votre guerre module (voir PLXUTILS-37). Et en effet, en utilisant les ressources de filtrage devrait fonctionner.Mise à jour: Il semble y avoir un bug dans le Maven Ressources Plugin, cette propriété n'est pas filtrées comme mentionné dans cette question. Vous pourriez avoir à utiliser la solution de contournement est suggéré dans cette réponse.
Oui, il sera fragiles (p. ex. l'ajout d'une dépendance pourrait tout casser donc, ce besoin d'être documenté), mais malheureusement, je ne pense pas qu'il existe quelque chose de mieux.
en fait cela ne fonctionne que jusqu'maven antrun plugin de la version 1.3. À partir de 1,4 onward ${projet.dépendances[0].artifactId} n'est pas interpolées plus.
OriginalL'auteur Pascal Thivent
Que je comprends que vous essayez de garder la version à jour, en attendant le reste de rester le même. Il y a deux alternatives.
La première consiste à supprimer la version et le nom ainsi que le code HTML ne doivent pas changer. Vous pouvez voir un exemple pratique par la recherche de
archiva-applet
ici: http://svn.apache.org/repos/asf/archiva/tags/archiva-1.3/archiva-modules/archiva-web/archiva-webapp/pom.xmlDans cet exemple, puisque vous ne voulez pas l'applet dans
WEB-INF/classes
de toute façon, il est omis de la webapp, puis inclus par l'intermédiaire de la Dépendance plugin:Si vous utilisez Maven 2.1.0+, vous pouvez utiliser le
prepare-package
phase et le copier directement à la sortie sans modifier votre répertoire source.Vous puis reportez-vous à l'applet dans le HTML avec le même nom.
Une solution alternative si vous voulez continuer de filtrage et de garder la version, est d'utiliser une propriété partagée:
...
...
Vous pouvez ensuite utiliser
${applet.version}
dans le code HTML et encore de ne changer que dans un seul endroit.OriginalL'auteur Brett Porter
De http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide:
Une autre option que vous avez est de changer de jeu
${project.build.finalName}
à une chaîne statique dans votre POM:Ne savais pas que le POT était une dépendance. Alors oui, ce n'est pas aider.
OriginalL'auteur matt b