假设我的pom.xml集中有一个自定义属性,如下所示:
<properties>
<app>com.myProject.app</app>
</properties>
如何在jenkinsfile中访问它?
此:
def pom = readMavenPom file: 'pom.xml'
def appName = pom.app
返回
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: unclassified field org.apache.maven.model.Model app
提前致谢!
答案 0 :(得分:3)
我知道两种方法:
properties-maven-plugin
将属性写入文件。在Jenkins文件中使用readProperties
来读取属性。pom = readMavenPom 'path/to/pom.xml'
。然后,像这样访问属性:pom.properties['com.myProject.app']
。我更喜欢方法2:POM中没有额外的插件配置,没有文件写入,排序约束更少,脆弱性更低。
答案 1 :(得分:1)
在管道样式中,您可以在Jenkinsfile中访问以下值
pipeline {
environment {
POM_APP = readMavenPom().getProperties().getProperty('app')
}
stages{
stage('app stage'){
steps{
script{
sh """
echo ${POM_APP}
"""
}
}
}
}
答案 2 :(得分:0)
试试这个: 图像 = readMavenPom().getArtifactId() VERSION = readMavenPom().getVersion()