[英]Getting ArtifactId and Version in Spring Boot Starter
[英]Jenkins: extract version and artifactid from maven for docker image name/tag
我正在使用 spring 啟動 maven 插件來生成我的 docker 圖像。 我在我的 pom 文件中將圖像名稱定義為動態的。 格式: my-registry.com/prefix/${project.artifactId}:${project.version}
如何獲取生成的圖像的動態名稱? 我需要它來進行進一步的構建步驟(部署)
我的構建管道如下所示:
pipeline {
agent {
docker {
image 'maven:3-jdk-11'
args '-v /root/.m2:/root/.m2'
}
}
stages {
stage('Clone sources') {
steps {
git branch: 'master',
credentialsId: 'xxxxx',
url: 'xxxxxx'
}
}
stage('Build') {
steps {
sh "mvn -Dmaven.test.failure.ignore=true clean install"
}
post {
success {
junit '**/target/surefire-reports/TEST-*.xml'
archiveArtifacts 'myproject-server/target/*.jar'
}
}
}
stage('Build and Push Docker Image') {
steps {
withCredentials([usernamePassword(credentialsId: 'xxxxx', passwordVariable: 'NEXUS_PASSWORD', usernameVariable: 'NEXUS_USER')]) {
sh "mvn -pl myproject-server -DskipTests=true spring-boot:build-image -DDOCKER_REGISTRY=xxxx -DDOCKER_REGISTRY_USER=$NEXUS_USER -DDOCKER_REGISTRY_PASSWORD=$NEXUS_PASSWORD"
}
}
}
stage('Deploy to DEV') {
steps {
sshagent(credentials : ['xxxx']) {
sh 'ssh -o StrictHostKeyChecking=no user@server DOCKER RUN LOGIC HERE WITH CORRECT IMAGE NAME'
}
}
}
}
}
您可以使用 Jenkins Pipeline Utility Steps 插件( https://www.jenkins.io/doc/pipeline/steps/pipeline-utility-steps/並提取 POM 文件)
pom = readMavenPom file: 'pom.xml'
pom.version
但正如他們的文檔中所述
避免使用此步驟並編寫MavenPom。 最好使用 sh 步驟來運行 mvn 目標。 例如
您可以改用此命令:
def version = sh script: 'mvn help:evaluate -Dexpression=project.version -q -DforceStdout', returnStdout: true
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.