Tout d'abord, j'ai une certaine compréhension du fait que ce qui suit peut ne pas être la façon généralement acceptée de faire les choses.Mise à jour d'une version de projet Maven à partir du script
Nous avons un projet Maven 2 qui a un numéro de version qui devrait être mis à jour chaque semaine, lors d'une nouvelle version. Au cours de ce processus, j'ai essayé d'éliminer toutes les choses dont on doit se souvenir et j'ai fait un script bash qui gère le processus de manière interactive.
Cependant, mon problème est la mise à jour de la version pom à partir de la ligne de commande. Je peux le faire avec sed mais je ne pense pas que ce soit très pratique. Je me demandais s'il y avait un plugin maven qui serait capable de modifier le fichier pom.xml directement à partir de la ligne de commande. La version est définie dans la section properties du pom. Serait-il possible d'écrire un plugin qui changerait les propriétés?
Merci d'avance.
Mise à jour
Il semble que ma question était avec les versions de projet définies comme des propriétés (qui ont été appliquées lors du filtrage) qui semble maintenant un peu stupide. Une chose que je cherche toujours une réponse est comment obtenir la version de certain projet de manière fiable à la ligne de commande. Auparavant, j'avais une propriété "assez unique" que j'utilisais en utilisant grep
, mais maintenant l'élément <version>
n'est pas unique car dans le projet enfant il y en a au moins deux. J'aurais besoin d'un analyseur XML si Maven n'a pas de solution, mais mon but est de rendre le script aussi indépendant que possible.
Je ne sais pas si j'aurais dû créer une nouvelle question, mais je ne l'ai pas fait. Obtenir la version est très étroitement liée à la définition de la version.
Merci! J'ai trouvé ce plugin moi-même, mais j'ai raté le fait que le plugin peut réellement mettre à jour le fichier pom.xml et pas seulement afficher les dépendances et autres. La définition de la version ne fonctionne pas puisque la version est définie dans le pom parent en tant que propriété, ce que je n'ai pas réalisé. Cependant, j'ai trouvé qu'il y a un objectif "update-properties" qui pourrait faire l'affaire. – mkko
Apparemment, "update-properties" est seulement pour la mise à jour des dépendances et ne définit aucune valeur. "versions: set" est la correspondance la plus proche, mais il semble qu'il n'y ait aucun moyen de définir la version dans le pom parent de cette façon - ou du moins comme une propriété. – mkko
@mkko: 1. Vous devez ** coder en dur la version dans le POM parent et dans les éléments 'des modules enfants, voir [MNG-624] (http://jira.codehaus.org/browse/MNG-624) pour des discussions exhaustives sur ce sujet 2. Les dépendances doivent utiliser la propriété intégrée $ {project.version} ', il n'y a pas de raison valable d'utiliser une propriété pour la version. C'est comme ça que ça fonctionne avec Maven. 3. Ensuite, vous serez capable d'utiliser 'versions: set' (mais c'est une conséquence indirecte de faire les choses correctement). –