Quelle est la meilleure façon de changer la version du projet Maven, de publier cette version et de revenir ensuite au développement *-SNAPSHOT
.
Actuellement je suis en train de suivre:
SNAPSHOT
) à partir de pom.xml
mvn -DnewVersion= versions:set
), en respectant les règles décrites dans la question Version artefact Maven pour les patchs mvn:install
pour envoyer à repo SNAPSHOT
postfix. J’ai un fort sentiment que je fais quelque chose de mal et / ou d’inefficace.
Vous devez utiliser le plugin maven-release-plugin pour libérer vos artefacts. Que automatiquement toutes vos versions seront incrémentées par le plug-in release. L’exception pourrait ê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 allant d’une version SNAPSHOT à une version finale, vous devez utiliser le plugin Maven Release pour libérer un artefact en utilisant simplement:
Premier pas:
mvn release:prepare
La dernière étape:
mvn release:perform
Si vous souhaitez accepter les valeurs par défaut, vous pouvez simplement append -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é dans une solution CI.
Utiliser mvn install est uniquement destiné à 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 pour utiliser le plug-in Release 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 maven-release-plugin (mrp) ne vous aidera pas beaucoup.
Dans ce cas, j’ai modifié versions-maven-plugin pour pouvoir incrémenter la version et pour append / 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 le contrôle total de chaque étape.
Par exemple, mrp valide la version modifiée avant d’ essayer de la construire. Si la construction échoue, vous devez annuler cette validation ou, dans le cas de SVN, vous devez effectuer une nouvelle validation de validation.
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.