заменить SNAPSHOT в файле pom.xml конвейер jenkins - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь заменить версию снимка в файле pom.xml в файле Jenkins.

From:

<abc.version>123-SNAPSHOT</abc.version>

123-SNAPSHOT Может быть любой версией снимка.

To:

<abc.version>234-SNAPSHOT</abc.version>

Я пробовал несколько команд, которые отлично работают в Mac OS, но не удается, когда я помещаю их в конвейер Jenkins.

Сгенерированная команда в журнале Jenkins также отлично работает в Mac OS как есть, но не выполняет замену.

Вот несколько команд, которые я скопировал из конвейера Jenkins, который прекрасно работает вMac, но не выполняет замену в самом конвейере jenkins.

Escape-команда в Jenkins:

sh "sed -i -e 's/\\<abc.version\\>[-[:alnum:]./]\\{1,\\}\\<\\/abc.version\\>/\\<abc.version\\>234-SNAPSHOT\\<\\/abc.version\\>/' services/spark-jobs/pcs/pom.xml"

Команда, которая выполняется в конвейере jenkins:

sed -i -e 's/\<abc.version\>[-[:alnum:]./]\{1,\}\<\/abc.version\>/\<abc.version\>234-SNAPSHOT\<\/abc.version\>/' services/spark-jobs/pcs/pom.xml

Это не заменяет версию в pom.xml

Есть идеи, что мне здесь не хватает?

1 Ответ

0 голосов
/ 11 сентября 2018

Вы можете прочитать свойства pom.xml в Jenkinsfile напрямую, используя шаг утилиты конвейера, передав

def pomModel = readMavenPom
def pomVersion = pomModel.getVersion().replace("123", "234")

См .: https://jenkins.io/doc/pipeline/steps/pipeline-utility-steps/

Если вы хотите переписать версию в pom.xml, вы можете использовать mvn mojo

mvn versions:set -DnewVersion=234-SNAPSHOT

Этот шаг переписывает файл pom.xml с более новой версией 234-SNAPSHOT, а старый файл pom.xml резервируется как pom.xml.versionsBackup (включите этот подстановочный знак в .gitignore, если вы не хотите выдвигать его в git repo).

...