Maven gestion des versions des meilleures pratiques [fermé]

Quelle est la meilleure façon de changer la version de Maven project, de publier cette version et de revenir ensuite au développement *-SNAPSHOT .

actuellement, je fais:

  • récupérer la version actuelle (très probablement avec SNAPSHOT ) de pom.xml
  • version incrémentielle ( mvn -DnewVersion=<something> versions:set ), respectant les règles décrites dans la question version Maven artifact pour patches
  • mvn:install envoyé des pensions
  • nouvelle version en ajoutant SNAPSHOT postfix.
  • commis des changements par le biais d'un système de contrôle de version)

j'ai un fort sentiment que je fais quelque chose de mal et/ou inefficace.

55
demandé sur Community 2012-03-04 16:03:24

2 réponses

vous devez utiliser le maven-release-plugin pour libérer vos artefacts. Que automatiquement toutes vos versions seront incrémentées par la version-plugin. L'exception pourrait être si vous passez de 1.0.3-SNAPSHOT à 1.1.0-SNAPSHOT . Le calendrier de développement avec Maven est:

1.0.0-SNAPSHOT
1.0.0
1.0.1-SNAPSHOT
1.0.1
1.0.2-SNAPSHOT
1.0.2
..

pour passer de L'étape D'un SNAPSHOT à une version de sortie, vous devez utiliser le plugin de sortie maven vous pouvez libérer un artefact simplement en utilisant:

première étape:

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.

en utilisant mvn install est seulement destiné à installer les artéfacts dans votre local référentiel. Si vous travaillez avec un véritable gestionnaire de dépôt (ce que je peux recommander), vous devez utiliser:

mvn deploy 

une condition pour utiliser le plugin release est de configurer la zone scm dans votre pom (j'espère que vous utilisez un contrôle de version?).

65
répondu khmarbaise 2012-03-04 12:12:13

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 versions modifiées-maven-plugin pour pouvoir version incrémentée et aussi pour ajouter / supprimer le suffixe .

grâce à ces nouvelles fonctionnalités, vous pouvez écrire un script qui fait la même chose que mrp, mais vous avez le contrôle total sur chaque étape.

par exemple, mrp commits a changé la version avant il essaie réellement de le construire. Si la compilation échoue, vous devez revenir sur cette propagation ou, dans le cas de SVN, vous devez faire un autre Retour-propagation.

Note: Je ne suis pas l'auteur original de la fonction increment. J'ai adopté il de autoincrement-versions-maven-plugin, comme indiqué sur la page github.

5
répondu Petr Újezdský 2015-01-28 14:56:14