В проектах maven версия проекта содержится в <version>
attritbute файла pom.xml. При создании новой версии в модели потока git мне нужно отбросить номер версии. В этой статье объясняется, как это делается (без maven):
- Создать ветвь release
- Измените номер версии и зафиксируйте
- Объединить ветвь релиза как для разработки, так и для мастеров
Кроме того, он говорит:
Именно в начале ветки релиза на предстоящий выпуск присваивается номер версии - не ранее. До этого момента отрасль развития отражала изменения для "следующего выпуска", но неясно, станет ли эта "следующая версия" в конечном итоге равной 0,3 или 1,0, до тех пор, пока не начнется ветвь релиза. Это решение принимается в начале ветки релиза и выполняется по правилам проектов при наступлении номера версии.
Я вижу две проблемы вместе с maven здесь:
- Версия, разрабатываемая в maven, будет [следующая версия] -SNAPSHOT. Поэтому мы не можем отложить решение, какая версия будет следующей до момента создания ветки релиза. Конечно, если мы можем изменить наш разум позже, но нам уже нужно ввести/некоторое значение/здесь раньше.
- Перед созданием нашего выпуска версия в pom.xml была разрешена
1.1-SNAPSHOT
. Теперь мы изменили это на просто1.1
в ветки релиза и объединили его для мастеринга. Хорошо. Но мы должны также объединить эту ветвь для разработки, и для этого нам нужно адаптировать версию, например.1.2-SNAPSHOT
. И, вероятно, мы не должны были делать это в ветки релиза, потому что это коммитирование не должно быть частью выпуска. На самом деле мы, вероятно, должны были внести это изменение сразу после разветвления, потому что все будущие обязательства будут развиваться для следующей версии.
При поиске по проблеме я нашел несколько статей о maven-плагинах, которые могут автоматизировать процесс, что может быть интересно, но этот вопрос действительно о том, как должен выглядеть граф git и где должна выполняться ошибка репликации версии а не как я могу автоматизировать это с помощью maven-плагина.