【发布时间】:2021-03-01 07:07:47
【问题描述】:
我正在开发一个声明性 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
}
}
}
【问题讨论】:
-
您是否尝试使用
maven deploy而不是rtUpload?
标签: maven jenkins jenkins-pipeline artifactory jenkins-declarative-pipeline