Snapshot 人工快照文件名处理
在我们的artifactory中,我们定义了一个快照repo来处理最多5个唯一的快照。我们在文件名中添加了-SNAPSHOT-.extension。快照也会转换为时间戳。使用gradle完成构建,并使用Bambol和artifactory插件发布工件 部署到artifactory的文件Snapshot 人工快照文件名处理,snapshot,artifactory,Snapshot,Artifactory,在我们的artifactory中,我们定义了一个快照repo来处理最多5个唯一的快照。我们在文件名中添加了-SNAPSHOT-.extension。快照也会转换为时间戳。使用gradle完成构建,并使用Bambol和artifactory插件发布工件 部署到artifactory的文件 inhouse-snapshots:com/example/project/subproject/trunk-SNAPSHOT/subproject-trunk-SNAPSHOT-79.amp 变成 inhou
inhouse-snapshots:com/example/project/subproject/trunk-SNAPSHOT/subproject-trunk-SNAPSHOT-79.amp
变成
inhouse-snapshots:com/example/project/subproject/trunk-SNAPSHOT/subproject-trunk-20120321.154621-1-79.amp
这很好,每个构建都会添加一个具有递增构建编号的新文件,但时间戳编号始终保持为20120321.154621-1,因此我们有一个文件列表,如:
- 子项目-trunk-20120321.154621-1-79.amp
- 子项目-trunk-20120321.154621-1-80.amp
- 子项目-trunk-20120321.154621-1-81.amp
有人对另一个目录布局有解决方案或建议吗?正如您正确观察到的,附加到已部署文件名的内部版本号被标识为分类器;这是因为Maven没有指定具有非唯一快照的内部版本号 Artifactory为工件的“批次”维护相同的时间戳和构建编号组合,并在检测到新的“批次”时“凹凸”时间戳和构建编号;为了将非唯一快照转换为唯一快照,Artifactory检测工件“批次”的方法有两种:
task apiJar(type: Jar) {
classifier = 'api'
from(sourceSets.main.output) {
include "com/company/app/dto/**"
}
}
task sourceJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task apiSourceJar(type: Jar, dependsOn: classes) {
classifier = 'api-sources'
from(sourceSets.main.allSource) {
include "com/company/app/dto/**"
}
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
pom.withXml {
asNode().appendNode('description', 'APP Sprint Boot App')
}
artifact apiJar
artifact sourceJar
artifact apiSourceJar
}
}
repositories {
maven {
credentials {
username = 'username'
password = 'password'
}
if(project.version.endsWith('-SNAPSHOT')) {
url "http://server:9081/artifactory/libs-snapshot-local"
} else {
url "http://server:9081/artifactory/libs-release-local"
}
}
}
}
此快照时间戳替换不应发生在Artifactory中。Artifactory仅使用默认Maven布局替换存储库中部署到有效Maven标准路径(本例无效)的工件的快照。您的存储库配置为使用什么布局?您自己执行替换吗?存储库布局是maven2default,我没有执行快照替换。我在artifactory管理控制台中用path tester测试了上面的路径,除了版本号79,80。。。被识别为分类器。我不确定这是否正确。我也在没有构建编号的情况下测试了它,在这种情况下,工件将被覆盖。在那里,我希望第二个文件具有新的时间戳和-2。。。在时间戳的末尾,我刚刚识别出上面导致maven2路径无效的输入错误,修复了它。对不起,谢谢。部署具有唯一时间戳(而不是快照)的文件可以使自动快照清理工作正常。