[英]Declarative Jenkinsfile using separate stages for Maven/Gradle build and publish to Artifactory
[英]Publish project Jar as maven artifacts to Jfrog Artifactory using Declarative Pipeline
我正在開發一個聲明性 Jenkins 管道腳本來構建工件並將其發布到 JFrog Artifactory。
我們只有一個項目存儲庫,服務位於 services 文件夾下。 所有服務都有自己的 pom.xml 。我們需要編寫一個腳本到管道腳本來構建工件並將工件發布到 JFrog 僅當在服務的各個目錄結構中檢測到更改時。
對於每個客戶,我們不能為每個服務擁有單獨的存儲庫。 這里的問題,使用以下腳本(使用rtUpload )我無法將工件作為 maven 工件(組 ID、工件 ID 和版本號)發布到工件。 請求您對此提供幫助。
項目結構如下。
trinad(repository)
|
|-----/java/services/customer_quote/pom.xml
|
|-----/java/services/customer_rate/pom.xml
|
|-----/java/services/customer_renew/pom.xml
pipeline{
agent any
tools{
jdk 'JDK'
maven 'Maven'
}
stages{
stage('Build'){
when {
anyOf{
changeset '**/services/customer_quote/**'
}
}
steps{
sh 'mvn -v'
sh 'mvn -f java/services/customer_quote/pom.xml' clean install
}
when {
anyOf{
changeset '**/services/customer_rate/**'
}
}
steps{
sh 'mvn -v'
sh 'mvn -f java/services/customer_rate/pom.xml' clean install
}
}
stage('publish'){
when {
anyOf{
changeset '**/services/customer_quote/**'
}
}
steps{
rtUpload{
serverId:'Artifactory',
spec:'''{
"files":[
{
"pattern":"/services/customer_quote/target/customer-quote-*.jar",
"target": "trinad"/${BUILD_NUMBER}/"
}]
}
}
}
//publish steps for other services goes here
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.