使用声明式管道将 Jenkins 变量注入 Maven
Inject Jenkins Variable to maven using Declarative Pipeline
我无法在附加图像中将上述带圆圈的功能添加为声明性管道语法。
PS我是新手,我在其他答案上搜索过这个,但没有一个符合我的要求。
例如jenkins中有一个名为VERSION的参数,maven命令应该变成
clean deploy -B -s pathtosettings.xml -DVERSION=valueinparameter
下面是我当前的代码
注意:我想自动获得所有参数 -DVERSION=${params.VERSION} 对我没有帮助
pipeline {
agent any
stages {
stage('Checkout Scm') {
steps {
git 'ssh://git@XXXXXXXXXXXXXXXXXXXXXXXXX.git'
}
}
stage('Maven Build 0') {
steps {
configFileProvider([configFile(fileId:'0c0631a5-6510-4b4a-833d-4b80fa67d5f3', targetLocation: 'settings.xml', variable: 'SETTINGS_XML')]) {
withMaven{
sh "mvn clean deploy -B -s ${SETTINGS_XML}
}
}
}
}
tools {
jdk 'JDK_1.8'
}
parameters {
string(name: 'VERSION', defaultValue: '3_12_0', description: 'version to be in maven')
}
}
首先,我认为您不需要 targetLocation
来执行此操作。
要访问您的参数值,您需要使用 params
前缀。
这就是我使用 configFileProvider
使其工作的方式:
configFileProvider([configFile(fileId: 'configFileId', variable: 'SETTINGS_XML')]) {
sh "mvn clean deploy -s $SETTINGS_XML -B -DVERSION=$params.VERSION"
}
有了这个,link 设置文件中的变量没有被替换,它在我的管道中被正确使用,并且版本在命令中被替换。不要忘记使用
'Maven settings.xml' configFileProvider
.
中的文件类型
steps {
script{
foo= " "
params.each {param ->
foo = "${foo} -D${param.key}=${param.value} "
}
}
configFileProvider([configFile(fileId:'XXXX', targetLocation: 'settings.xml', variable: 'SETTINGS_XML')]) {
withMaven{
sh "mvn clean deploy -B -s ${SETTINGS_XML} - ${foo}"
}
}
这是找到的唯一方法
我无法在附加图像中将上述带圆圈的功能添加为声明性管道语法。
PS我是新手,我在其他答案上搜索过这个,但没有一个符合我的要求。
例如jenkins中有一个名为VERSION的参数,maven命令应该变成
clean deploy -B -s pathtosettings.xml -DVERSION=valueinparameter
下面是我当前的代码 注意:我想自动获得所有参数 -DVERSION=${params.VERSION} 对我没有帮助
pipeline {
agent any
stages {
stage('Checkout Scm') {
steps {
git 'ssh://git@XXXXXXXXXXXXXXXXXXXXXXXXX.git'
}
}
stage('Maven Build 0') {
steps {
configFileProvider([configFile(fileId:'0c0631a5-6510-4b4a-833d-4b80fa67d5f3', targetLocation: 'settings.xml', variable: 'SETTINGS_XML')]) {
withMaven{
sh "mvn clean deploy -B -s ${SETTINGS_XML}
}
}
}
}
tools {
jdk 'JDK_1.8'
}
parameters {
string(name: 'VERSION', defaultValue: '3_12_0', description: 'version to be in maven')
}
}
首先,我认为您不需要 targetLocation
来执行此操作。
要访问您的参数值,您需要使用 params
前缀。
这就是我使用 configFileProvider
使其工作的方式:
configFileProvider([configFile(fileId: 'configFileId', variable: 'SETTINGS_XML')]) {
sh "mvn clean deploy -s $SETTINGS_XML -B -DVERSION=$params.VERSION"
}
有了这个,link 设置文件中的变量没有被替换,它在我的管道中被正确使用,并且版本在命令中被替换。不要忘记使用
'Maven settings.xml' configFileProvider
.
steps {
script{
foo= " "
params.each {param ->
foo = "${foo} -D${param.key}=${param.value} "
}
}
configFileProvider([configFile(fileId:'XXXX', targetLocation: 'settings.xml', variable: 'SETTINGS_XML')]) {
withMaven{
sh "mvn clean deploy -B -s ${SETTINGS_XML} - ${foo}"
}
}
这是找到的唯一方法