如何将构建工件的快照版本上载到Artifactory中的gradle存储库

问题描述 投票:0回答:1

我正在使用Jenkins-Artifactory插件将jar文件部署到Artifactory中的repo。正在使用的构建工具是gradle。该过程似乎没有维护jar工件的多个带时间戳的版本。

存储库使用'gradle-default'布局。 Maven快照版本行为已设置为“唯一”。最大唯一快照设置为30。

我使用rtUpload和rtPublishBuildInfo将jar和相应的buildinfo上传到Artifactory。

我在'artifactory-build-info'存储库下看到了buildinfo的多个版本,格式为BUILDNUMBER_TIMESTAMP.json。然而,应用程序jar每次都被覆盖,名称为appname-VERSION.jar,因此只保留repo中的最新版本。

我尝试将Maven快照版本行为更改为“非唯一”并将“SNAPSHOT”添加到版本字符串。这并没有解决问题

用于上传工件的管道代码

// upload build artifacts to artifact repository
        stage('publish to artifactory') {
          steps {
            rtUpload (
                serverId: "ARTIFACTORY_SERVER_ID",
                spec:
                  """{
                    "files": [
                      {
                        "pattern": "kotlin-source/build/libs/appname-*.jar",
                        "target": "gradle-dev-local"
                      }
                    ]
                  }""",
                failNoOp: true,
            )
          }
        }
        stage ('Publish build info') {
           steps {
              rtPublishBuildInfo (
                serverId: "ARTIFACTORY_SERVER_ID",
               )
           }
        }

期望在repo中存在多个工件,并在名称后附加时间戳。在回购下只看到一个罐子。发布工件后,repo中的现有jar将移至Trash Can

jenkins gradle jenkins-pipeline artifactory
1个回答
2
投票

独特快照的工作方式是当设置设置为UNIQUE且repo布局为Maven(或Gradle)快照,并且根据布局使用SNAPSHOT版本部署文件时,Artifactory将动态重命名以包含Maven唯一快照ID。

Maven出版物将负责快照版本,Artifactory将负责使这些快照独特(和清理)。您只需要确保您的版本字符串以-SNAPSHOT结尾。

© www.soinside.com 2019 - 2024. All rights reserved.