Maven meilleures pratiques pour la gestion des versions différentes branches de développement, de test et de pré-presse]

J'ai quelques projets qui sont mis au point et diffusé sur les différentes branches, à savoir développement et libération. Le processus fonctionne assez bien, mais malheureusement, il a aussi quelques inconvénients et j'ai été me demandais si il y a un meilleur schéma de gestion des versions d'appliquer dans ma situation.

La principale évolution se produit sur une branche de développement (c'est à dire la Subversion tronc mais il n'a pas beaucoup d'importance) où l'équipe de développeurs de commettre leurs modifications. Après la construction et de l'emballage des artefacts, Jenkins déploie à repository maven et le développement de l'intégration de l'application serveur. C'est un DÉVELOPPEMENT INSTANTANÉ et est fondamentalement juste un fonction de direction contenant toutes les fonctionnalités développées sur une branche commune:

<groupId>pl.cyfrowypolsat.process-engine</groupId>
<artifactId>process-engine</artifactId>
<version>D.16-SNAPSHOT</version>

Quand une entreprise en particulier est fait et, à la demande de l'équipe QA, ce seul changement est alors fusion en vue de la libération de la branche (branches/release). Jenkins déploie l'artefact résultant de l'AQ serveur d'application:

<groupId>pl.cyfrowypolsat.process-engine</groupId>
<artifactId>process-engine</artifactId>
<version>R.16-SNAPSHOT</version>

Puis, il y a un rejet qui se passe via maven-release-plugin sur la branche de version de la version de logiciel (ce qui crée un entretien tag/branche rapide correction d'un bug). (R. 16-SNAPSHOT => R. 16)

Développement et la libération des branches sont actuellement en cours de version que D. 16-INSTANTANÉ et R. 16-INSTANTANÉ, respectivement. Ceci permet de séparer les artefacts dans le repository maven, mais crée un problème avec les différents maven mécanismes qui reposent sur la norme de gestion des versions de maven style. Et cela rompt avec OSGI versioning ainsi.

Maintenant, comment voulez-vous le nom et la version de maven artefacts dans un tel système? Est-il un meilleur moyen? Je pourrais peut-être faire quelques changements à maven structures autres que le simple changement de la gestion des versions et des schémas de nommage? Mais j'ai besoin de garder de développement et d'assurance qualité (libération) SCM branches distinctes.

Serait une maven classificateur de "développement" /"production" être une alternative raisonnable?

<groupId>pl.cyfrowypolsat.process-engine</groupId>
<artifactId>process-engine</artifactId>
<version>16-SNAPSHOT</version>
<classifier>D</classifier>
  • Regardez stackoverflow.com/q/11413624/7581. Il semble que le meilleur moyen serait d'avoir les versions comme 16-R-SNAPSHOT, et 16-D-SNAPSHOT. N'utilisez pas le classificateur.
InformationsquelleAutor Mike Minicki | 2011-12-02