Я пытаюсь увеличить свою версию pom с помощью Jenkins, но сталкиваюсь со многими проблемами с элементом script декларативного конвейера Jenkins. Моя цель:
- Дженкинс извлекает код из SCM
- Запустите плагины maven
- Увеличить версию приложения в пом
- Слейте новую помпу обратно в 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 в конец версии
1 ответ
Когда вы используете build-helper-maven-plugin, вы можете разобрать версию на ее компоненты:
https://www.mojohaus.org/build-helper-maven-plugin/parse-version-mojo.html
Это предлагает не только такие элементы, как majorVersion
и minorVersion
, но также nextMajorVersion
, nextMinorVersion
и т. Д.
Похожие вопросы
Новые вопросы
maven
Apache Maven - это инструмент для автоматизации сборки и управления проектами, используемый в основном для проектов Java. Этот тег предназначен для вопросов, которые не относятся к конкретной версии Maven. Вместо этого используйте тег gradle для вопросов, касающихся Gradle.