J'imagine qu'il devrait y avoir une relation inhérente entre ces branches qui devrait résoudre le problème des numéros de version.
Libération
J'imagine que vous pourriez faire quelque chose comme fusionner le code prêt à la production de la branche dev à la branche release, puis effectuer une version Maven (via Jenkins ou manuellement). Cela transfère automatiquement les numéros de version à la prochaine génération. Vous fusionnez donc le code 1.4.7-SNAPSHOT dans cette branche, effectuez la version et coupez la version 1.4.7, et Maven déploie automatiquement votre copie de travail en 1.4.8-SNAPSHOT.
Mise à jour de la ligne de base (facultatif)
Si vous n'utilisez pas déjà votre tronc (ou branche de base, etc.) comme emplacement pour vos versions, vous devez mettre à jour le tronc dès que vous avez terminé une version. Cela signifie que vos numéros de version sont également mis à jour. Cette étape peut être théorique si vous considérez simplement que la branche de publication est la référence.
Fusion de Baseline à Dev Branch
Il est essentiel que votre branche de développement reste à jour avec le code de production réel . Vous devez fusionner le code depuis la ligne de base (ou la branche de publication, selon l'implémentation) jusqu'à votre branche de développement. Ceci est important dans votre cas car cela signifie que les modifications de pom qui se sont produites pendant le processus de publication, qui ont changé la version en 1.4.8-SNAPSHOT, sont apportées à cette branche.
D'après la lecture que j'ai faite (ainsi que les processus dans mon organisation), cela semble être une utilisation assez standard et efficace des versions et des instantanés de Maven, et plutôt que de maintenir des numéros de version complètement déconnectés sur différentes branches, c'est facile à dire que toute version 1.4.7-SNAPSHOT était en fait un prédécesseur immédiat de la version 1.4.7. Ils sont liés. J'irais jusqu'à dire que si vous ne fusionnez pas dans les deux sens entre ces branches, vous faites mal les versions de SCM et de Maven et vous vous mettez en danger de développer contre du code qui ne correspond pas à la production , réintroduit des bogues en production, etc.