【问题标题】:Publish project Jar as maven artifacts to Jfrog Artifactory using Declarative Pipeline使用声明性管道将项目 Jar 作为 maven 工件发布到 Jfrog Artifactory
【发布时间】: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


【解决方案1】:

我建议使用wiki 中提到的基于 Maven 的作业并对其进行测试。当您尝试使用“mvn”客户端构建并使用 rtUpload 部署到 Artifactory 时,我怀疑这是否正确。您可以先尝试使用 mvn deploy,也可以使用上面 wiki 中提到的管道设置管道。

可在此 JFrog 的Github 下找到声明性脚本的示例 JenkinsFile。可能使用 rtMavenRun 应该有助于构建和部署文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 2019-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多