Номер версии артефакта Maven с пользовательской переменной - PullRequest
0 голосов
/ 01 ноября 2019

В моем pom есть этот раздел:

<groupId>com.sample.app</groupId>
<artifactId>simpleapp</artifactId>
<version>1.0.9-${buildNumber}-SNAPSHOT</version>
<packaging>war</packaging>

Есть ли какой-нибудь хороший и "maven способ" сохранить это имя переменной $ {buildNumber} в том месте в pom, как сейчас? Я имею в виду - когда я выполняю

mvn deploy:prepare deploy:release  -DbuildNumber=${BUILD_NUMBER}

, этот раздел версии в pom.xml обновляется до (когда BUILD_NUMBER eq: 12):

<version>1.0.9-12-SNAPSHOT</version>

, что почти нормально, но этотакже переданы в хранилище. Мне нравится тот факт, что этот тег: 1.0.9-12 в git repo создан, но я предпочитаю сохранять свой исходный формат версии в pom.xml файле:

<version>1.0.9-${buildNumber}-SNAPSHOT</version>

Это потому, что этот глупый подходВ моей компании я должен добавить к версии артефакта также номер сборки из инструмента CI: (

Может кто-нибудь подсказать, как с этим справиться?

Ответы [ 3 ]

0 голосов
/ 01 ноября 2019

спасибо JF Meier - я думаю, что это решит "мою проблему":

mvn --batch-mode \
-DdevelopmentVersion=1.6.6-\${buildNumber}-SNAPSHOT \
-DreleaseVersion=1.6.6-18 \
release:clean \
release:prepare \
release:perform

Я не знаю, как использовать этот плагин: build-helper: parse-version для получения Major, Minorи инкрементное число, но я буду использовать плагин Jenkins для извлечения этих значений из pom.xml. Затем я могу установить его динамически, выполнить всю операцию автоматически (build + git tag + upload to nexus), и в результате мой pom.xml будет обновлен переменной $ {buildNumber}!

Спасибо!

0 голосов
/ 01 ноября 2019

ОБНОВЛЕНИЕ:

Я добавил зависимость для этого вспомогательного плагина, и окончательный результат выглядит следующим образом:

mvn --batch-mode \
build-helper:parse-version \
-DdevelopmentVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.nextIncrementalVersion}-\${parsedVersion.qualifier} \
-DreleaseVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.incrementalVersion}-31 \
release:clean \
release:prepare \
release:perform

Я удалил этот $ {buildNumber}, так как он не требуется - ПостроитьПлагин Helper мне очень помог - мне не нужно никаких дополнительных шагов в плане CI. Теперь у меня есть автоинкремент и во время выпуска я могу добавить идентификатор плана сборки.

Для меня решен случай: -)

0 голосов
/ 01 ноября 2019

Плагин Maven Release имеет параметр developmentVersion, который позволяет вам установить новую версию, которая будет добавлена ​​в вашу ветку git после завершения выпуска.

Если вы хотите сообщить плагину релиза о повторном использовании частей версии, которые вы использовали ранее, плагин Build Helper Maven *1007* поможет вам разобрать версию. Он создает свойства, такие как majorVersion и minorVersion, из которых вы можете создать целевую версию, которая вам нравится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...