我正在使用Jenkins-Artifactory插件将jar文件部署到Artifactory中的存储库中。正在使用的构建工具是gradle。该过程似乎并没有维护jar工件的多个带有时间戳的版本。
存储库使用“渐变默认”布局。 Maven快照版本行为已设置为“唯一”。 最大不重复快照设置为30。
我正在使用rtUpload和rtPublishBuildInfo将jar和相应的buildinfo上传到Artifactory。
我在“ artifactory-build-info”存储库下看到了多个版本的buildinfo,格式为BUILDNUMBER_TIMESTAMP.json 但是,每次使用名称为appname-VERSION.jar的应用程序jar都会被覆盖,从而在回购中仅保留最新版本。
我尝试将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",
)
}
}
预期回购中将存在多个工件,并在名称后附加时间戳。 回购下只能看到一个罐子。 发布工件后,将回购中的现有jar移至垃圾箱
答案 0 :(得分:2)
唯一快照的工作方式是:将设置设置为UNIQUE并且回购布局为Maven(或Gradle)快照,并且根据布局使用SNAPSHOT版本部署文件时,Artifactory会即时将其重命名为包含Maven唯一的快照ID。
Maven发布将负责快照版本,Artifactory将负责使这些快照唯一(和清除)。您只需要确保您的版本字符串以Dim finalas() As String = arrf.ToArray(GetType(System.String))
For Each element As String In finalas
Dim item As New ListViewItem(element)
ListView1.Items.Add(item)
Next
结尾即可。