Pourquoi Maven 3 renoncer à l'application de la déclaration de soutien $ version?
-
26-09-2019 - |
Question
Comme vous le voyez dans le titre, je veux demander que le cas de Maven 3 il n'y a pas de support pour la version $ en pom.xml plus. Devons-nous vraiment écrire une constante à chaque fois dans chaque projet dans tous les pom.xml et les fichiers de configuration connexes encore et encore? Comment pouvons-nous éviter de le faire? Comment peut-on utiliser une méthode comme versioning $ la version?
La solution
Le ${version}
d'expression est dépréciée, vous devez utiliser ${project.version}
à la place, mais les deux sont encore pris en charge et vous n'avez certainement pas besoin d'une propriété personnalisée.
Ce qui suit fonctionne très bien pour moi avec Maven 3:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>services</artifactId>
<version>${project.version}</version>
<type>ejb</type>
</dependency>
Et ont aussi un oeil à ma réponse précédente Avertissement sur l'utilisation project.parent.version que la version d'un module dans Maven 3 , la façon dont vous utilisez version
(basé sur ce que je voyais dans les commentaires dans une autre réponse) ne fait pas à mon humble avis beaucoup de sens et Maven 3 suggère en fait de bien vouloir suivre une meilleure pratique. Juste hériter la version.
Autres conseils
En utilisant une macro dans l'élément <version/>
supérieur et la version dans l'élément <parent/>
n'a jamais travaillé dans Maven 2. Il est apparu au travail, mais rien causé, mais la confusion en aval. Si ce n'est pas ce que vous parlez, s'il vous plaît préciser votre question.
L'erreur ci-dessous montre la dévalorisation de $(artifactId}
et ${version}
[AVERTISSEMENT] L'expression $ {artifactId} est dépréciée. Veuillez utiliser $ {} Project.artifactId à la place. [AVERTISSEMENT] L'expression $ {version} est dépréciée. S'il vous plaît utiliser $ {} project.version à la place. [ATTENTION] [ATTENTION] Il est fortement recommandé de résoudre ces problèmes parce qu'ils menacent t-il la stabilité de votre construction. [AVERTISSEMENT] [ATTENTION] Pour ce raison, versions futures Maven ne peuvent plus supporter buildin g tel projets malformés.
Le message d'avertissement qu'il précise. Remplacer ${artifactId}
avec ${project.artifactId}
et ${version}
avec ${project.version}