Jenkins文件maven custom settings.xml
我有一个包含几个maven步骤的Jenkins文件,如何在整个管道中指定自定义maven设置以避免在eac步骤中使用withMaven() 我的理想解决方案是可以在“工具”管道部分设置,但找不到的东西:Jenkins文件maven custom settings.xml,maven,jenkins,jenkins-pipeline,jenkins-groovy,Maven,Jenkins,Jenkins Pipeline,Jenkins Groovy,我有一个包含几个maven步骤的Jenkins文件,如何在整个管道中指定自定义maven设置以避免在eac步骤中使用withMaven() 我的理想解决方案是可以在“工具”管道部分设置,但找不到的东西: tools { maven 'maven3' jdk 'openjdk-1.8' } 有了Maven(..)DSL就意味着在阶段范围内,这就是我认为它不能在其他阶段重用的原因 但是你可以用另一种方式,也就是 如果Jenkins master和代理具有docker运行时,您可以轻
tools {
maven 'maven3'
jdk 'openjdk-1.8'
}
有了Maven(..)DSL就意味着在阶段范围内,这就是我认为它不能在其他阶段重用的原因
但是你可以用另一种方式,也就是
pipeline {
agent {
docker {
image 'maven:3-alpine'
args '-v /tmp:/tmp'
}
}
stages {
stage("version bump") {
steps {
sh "mvn versions:set -DnewVersion=1.0.3-SNAPSHOT"
}
}
stage("build") {
steps {
sh "mvn clean install"
}
}
stage("deploy") {
steps {
sh "mvn deploy"
}
}
}
}
node {
docker.image('maven:3-alpine').inside {
stage('version bump') {
sh 'mvn versions:set -DnewVersion=1.0.3-SNAPSHOT'
}
stage('build') {
sh 'mvn clean install'
}
stage('deploy') {
sh 'mvn deploy'
}
}
}
脚本化Jenkins文件
pipeline {
agent {
docker {
image 'maven:3-alpine'
args '-v /tmp:/tmp'
}
}
stages {
stage("version bump") {
steps {
sh "mvn versions:set -DnewVersion=1.0.3-SNAPSHOT"
}
}
stage("build") {
steps {
sh "mvn clean install"
}
}
stage("deploy") {
steps {
sh "mvn deploy"
}
}
}
}
node {
docker.image('maven:3-alpine').inside {
stage('version bump') {
sh 'mvn versions:set -DnewVersion=1.0.3-SNAPSHOT'
}
stage('build') {
sh 'mvn clean install'
}
stage('deploy') {
sh 'mvn deploy'
}
}
}
mvn
命令将在任何命令行sh
或bat
node {
def mvn="mvn --batch-mode -s path/to/settings.xml -Dmaven.repo.local=${WORKSPACE}/.m2"
stage('version bump') {
sh "${mvn} versions:set -DnewVersion=1.0.3-SNAPSHOT"
}
stage('build') {
sh "${mvn} clean install"
}
stage('deploy') {
sh "${mvn} deploy"
}
}
有了Maven(..)DSL就意味着在阶段范围内,这就是我认为它不能在其他阶段重用的原因
但是你可以用另一种方式,也就是
pipeline {
agent {
docker {
image 'maven:3-alpine'
args '-v /tmp:/tmp'
}
}
stages {
stage("version bump") {
steps {
sh "mvn versions:set -DnewVersion=1.0.3-SNAPSHOT"
}
}
stage("build") {
steps {
sh "mvn clean install"
}
}
stage("deploy") {
steps {
sh "mvn deploy"
}
}
}
}
node {
docker.image('maven:3-alpine').inside {
stage('version bump') {
sh 'mvn versions:set -DnewVersion=1.0.3-SNAPSHOT'
}
stage('build') {
sh 'mvn clean install'
}
stage('deploy') {
sh 'mvn deploy'
}
}
}
脚本化Jenkins文件
pipeline {
agent {
docker {
image 'maven:3-alpine'
args '-v /tmp:/tmp'
}
}
stages {
stage("version bump") {
steps {
sh "mvn versions:set -DnewVersion=1.0.3-SNAPSHOT"
}
}
stage("build") {
steps {
sh "mvn clean install"
}
}
stage("deploy") {
steps {
sh "mvn deploy"
}
}
}
}
node {
docker.image('maven:3-alpine').inside {
stage('version bump') {
sh 'mvn versions:set -DnewVersion=1.0.3-SNAPSHOT'
}
stage('build') {
sh 'mvn clean install'
}
stage('deploy') {
sh 'mvn deploy'
}
}
}
mvn
命令将在任何命令行sh
或bat
node {
def mvn="mvn --batch-mode -s path/to/settings.xml -Dmaven.repo.local=${WORKSPACE}/.m2"
stage('version bump') {
sh "${mvn} versions:set -DnewVersion=1.0.3-SNAPSHOT"
}
stage('build') {
sh "${mvn} clean install"
}
stage('deploy') {
sh "${mvn} deploy"
}
}
整个管道避免在eac步骤中使用withMaven()。
您需要多少次withMaven(…)
?4次,我使用configFileProvider而不是withMaven(),并将fileId参数化,工作正常,您只需设置一次“fieldId”参数,。。。但它保留了4个重复的代码块。为什么要使用withMaven 4次?你能展示这些东西吗?整个管道避免在eac步骤中使用withMaven()。
你需要多少次withMaven(…)
?4次,我使用configFileProvider而不是withMaven(),并将fileId参数化,效果很好,使用它你只需设置“fieldId”参数一次,。。。但它保留了4个重复的代码块。为什么要使用withMaven 4次?你能给我看看那些东西吗?