Я думаю, що між цими гілками має бути притаманний взаємозв'язок, який повинен вирішити проблему номерів версій.
Звільнення
Я б припустив, що ви можете зробити щось на кшталт злиття готового до виробництва коду від гілки розробників до гілки випуску, а потім виконати реліз Maven (через Jenkins або вручну). Це автоматично переносить номери версій до наступної збірки. Отже, ви з’єднаєте код 1.4.7-SNAPSHOT до цієї гілки, виконайте випуск та скорочення версії 1.4.7, і Maven автоматично згортає вашу робочу копію до 1.4.8-SNAPSHOT.
Оновлення базової лінії (необов’язково)
Якщо ви вже не використовуєте ваш магістраль (або базову гілку тощо) як місце для своїх випусків, вам слід оновити магістраль, як тільки ви завершите випуск. Це означає, що ваші номери версій також оновлюються. Цей крок може бути суперечливим, якщо ви просто вважаєте гілку випуску базовою лінією.
Підключіться від базової лінії до відділення Dev
Важливо, щоб ваша галузь розвитку була в курсі фактичного виробничого коду. Вам потрібно об'єднати код від базової лінії (або відділення випуску, залежно від реалізації) до вашої галузі розробки. Це важливо у вашому випадку, оскільки це означає, що до цієї гілки внесені зміни пам’яті, які відбулися в процесі випуску, які змінили версію на 1.4.8-SNAPSHOT.
На основі читання, яке я проробляв (як і процесів у моїй організації), це здається досить стандартним та ефективним використанням Maven-релізів та знімків, а замість того, щоб підтримувати повністю відключені номери версій у різних галузях, це легко зрозуміти що будь-яка збірка 1.4.7-SNAPSHOT насправді була безпосереднім попередником версії 1.4.7. Вони пов'язані. Я б пішов так далеко, щоб сказати, якщо ви не зливаєтесь назад і назад між цими гілками, ви робите і версію SCM, і Maven неправильно, і ви піддаєте себе ризику розвиватися проти коду, який не відповідає виробництву , знову вводить помилки у виробництво тощо.