Quelle est la meilleure façon de changer la version du projet Maven, de publier cette version, puis de revenir à *-SNAPSHOT
développement.
Actuellement, je fais ce qui suit:
SNAPSHOT
) à partir de pom.xml
mvn -DnewVersion=<something> versions:set
), en respectant les règles décrites dans la question version d'artefact Maven pour les patchsmvn:install
à envoyer au dépôtSNAPSHOT
postfix.J'ai le sentiment fort que je fais quelque chose de mal et/ou d'inefficace.
Vous devez utiliser maven-release-plugin pour libérer vos artefacts. Ensuite, automatiquement toutes vos versions seront incrémentées par le plugin de publication. L'exception peut être si vous passez de 1.0.3-SNAPSHOT à 1.1.0-SNAPSHOT. Le calendrier de développement avec Maven est le suivant:
1.0.0-SNAPSHOT
1.0.0
1.0.1-SNAPSHOT
1.0.1
1.0.2-SNAPSHOT
1.0.2
..
Pour passer à l'étape d'un INSTANTANÉ à une version finale, vous devez utiliser le plugin de sortie maven, vous pouvez libérer un artefact simplement en utilisant:
Premier pas:
mvn release:prepare
La dernière étape:
mvn release:perform
Si vous souhaitez accepter les valeurs par défaut, vous pouvez simplement ajouter -B comme:
mvn -B release:prepare
ou vous pouvez combiner ces étapes en une seule:
mvn -B release:prepare release:perform
Ce qui précède peut également être utilisé à partir d'une solution CI.
L'utilisation de mvn install est uniquement destinée à installer les artefacts dans votre référentiel local. Si vous travaillez avec un vrai comme un gestionnaire de référentiel (que je peux recommander), vous devez utiliser:
mvn deploy
Une condition requise pour utiliser le plugin de publication est de configurer la zone scm dans votre pom (j'espère que vous utilisez un contrôle de version?).
Si vous voulez plus de contrôle sur la phase de publication, le plugin maven-release (mrp) ne vous aidera pas beaucoup.
Dans ce cas, j'ai versions modifiées-maven-plugin pour pouvoir incrémenter la version et également ajouter/supprimer le suffixe SNAPSHOT .
Grâce à ces nouvelles fonctionnalités, vous pouvez écrire des scripts qui font la même chose que mrp, mais vous avez un contrôle total sur chaque étape.
Par exemple, mrp valide la version modifiée avant il essaie réellement de le construire. Si la construction échoue, vous devez annuler ce commit ou, dans le cas de SVN, vous devez faire un autre revert-commit.
Remarque: je ne suis pas l'auteur original de la fonction d'incrémentation. Je l'ai adopté depuis autoincrement-versions-maven-plugin, comme indiqué sur la page github.