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

  1. Дженкинс извлекает код из SCM
  2. Запустите плагины maven
  3. Увеличить версию приложения в пом
  4. Слейте новую помпу обратно в SCM

Мне удалось удалить «-SNAPSHOT» из версии, и я сохранил версию (например, 1.0.0) в переменной в элементе скрипта конвейера. Я не могу затем использовать эту переменную, чтобы иметь возможность увеличивать ее.

pipeline { agent any tools { maven 'maven' } stages { stage ('Git checkout branch') { steps { git branch: 'branch', credentialsId: '****', url: 'https://projectRepo' } } stage ('Increment snapshot') { steps { dir('directory') { //Remove snapshot from version in pom sh 'mvn versions:set -DremoveSnapshot' script { //Get the version and assign to variable 'version' version = '$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)' } //content of version can only be accessed by ${version} sh "echo ${version}" } } } } }

Моя цель - получить версию в тегах скрипта, затем выполнить разделение, подобное этому .split ("\."), Затем увеличить последнее число, а затем, когда я сделаю выпуск, я буду использовать флаг maven для обновления пом с новой версией, плюс добавить -SNAPSHOT в конец версии

2
dane_griffiths 2 Окт 2019 в 20:50

1 ответ

Лучший ответ

Когда вы используете build-helper-maven-plugin, вы можете разобрать версию на ее компоненты:

https://www.mojohaus.org/build-helper-maven-plugin/parse-version-mojo.html

Это предлагает не только такие элементы, как majorVersion и minorVersion, но также nextMajorVersion, nextMinorVersion и т. Д.

1
J Fabian Meier 2 Окт 2019 в 18:16