В нашем магазине все наши POM в SVN имеют <version>9999-SNAPSHOT</version>
(для их собственной версии, а также для внутренних зависимостей). Это никогда не меняется.
Во время сборки у нас есть простой муравей build.xml
, который принимает номер версии (установленный вне maven) в качестве параметра -Dversion=...
и просто делает:
<replace includes="**/pom.xml" token="9999-SNAPSHOT" value="${version}"/>
<artifact:mvn ... />
Это изменение является локальным для рабочей копии процесса сборки - оно никогда не регистрируется для контроля версий.
Таким образом, все сборки выпуска имеют «реальный» номер версии, но фактически dev никогда не имеет дело с номерами версий.
Вышесказанное, как вы говорите в своем вопросе, категорически не является Правильным способом сделать это, но оно хорошо сработало для нас в течение ~ 9 месяцев с тех пор, как мы приняли maven. У нас есть десятки модулей maven, каждый из которых продвигается в пошаговом режиме к процессу QA / release.
Одним из следствий этого подхода является то, что вам потребуются отдельные рабочие пространства затмений для каждой ветви, над которой вы работаете, иначе копии проекта из разных ветвей будут конфликтовать.