【发布时间】:2019-03-27 10:54:06
【问题描述】:
我正在使用 Jenkins-Artifactory 插件将 jar 文件部署到 Artifactory 中的存储库。正在使用的构建工具是 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。 工件发布后,repo 中的现有 jar 被移动到垃圾箱
【问题讨论】:
标签: jenkins gradle jenkins-pipeline artifactory