Я пытаюсь прочитать свойства из моего файла pom.xml. Я попробовал следующее, и это сработало:
steps {
script {
def xmlfile = readFile "pom.xml"
def xml = new XmlSlurper().parseText(xmlfile)
def version = "${xml.version}"
echo version
}
}
Когда я попытался сделать что-то вроде этого:
steps {
script {
def xmlfile = readFile "pom.xml"
def xml = new XmlSlurper().parseText(xmlfile)
def version = "${xml.version}"
def mystring = "blabhalbhab-${version}"
echo mystring
}
}
конвейер неожиданно завершился с ошибкой:
Caused: java.io.NotSerializableException: groovy.util.slurpersupport.NodeChild
В чем может быть проблема здесь?
РЕДАКТИРОВАТЬ: просто добавьте это для других, которые находят его с таким же вариантом использования. Мой конкретный вопрос был о том, как избежать ошибки, связанной с CPS, с помощью XmlSlurper (). НО для тех, кто пытается разобрать POM, боясь того PR, который якобы обесценит readMavenPom
, самый безопасный и хитрый способ сделать это, вероятно, что-то вроде:
def version = sh script: "mvn help:evaluate -f 'pom.xml' -Dexpression=project.version -q -DforceStdout", returnStdout: true trim()
Таким образом, вы используете сам maven дляскажу вам, что это за версия, а не копать и не прятаться по всему проклятому месту. Как получить версию проекта Maven в командной строке bash