Maven 部署快照版本-获取(时间戳)版本号
如果我将一个工件部署到版本号为1.0.0-SNAPSHOT的Maven存储库中,它将获得一个内部版本号,格式为1.0.0-21323-2(时间戳和编号)。如何找到此版本号?将工件部署到Artifactory时,您会得到一个JSON响应,其中包括已部署工件的URI。您可以使用它来获取时间戳版本。例如:Maven 部署快照版本-获取(时间戳)版本号,maven,nexus,artifactory,snapshot,Maven,Nexus,Artifactory,Snapshot,如果我将一个工件部署到版本号为1.0.0-SNAPSHOT的Maven存储库中,它将获得一个内部版本号,格式为1.0.0-21323-2(时间戳和编号)。如何找到此版本号?将工件部署到Artifactory时,您会得到一个JSON响应,其中包括已部署工件的URI。您可以使用它来获取时间戳版本。例如: { "repo" : "libs-snapshot-local", "path" : "/org/jfrog/buildinfo/build-info-extractor-maven3/2.
{
"repo" : "libs-snapshot-local",
"path" : "/org/jfrog/buildinfo/build-info-extractor-maven3/2.5.4-SNAPSHOT/build-info-extractor-maven3-2.5.4-20160205.203000-1.jar",
"created" : "2016-02-05T22:30:00.624+02:00",
"createdBy" : "admin",
"downloadUri" : "http://localhost:8081/artifactory/libs-snapshot-local/org/jfrog/buildinfo/build-info-extractor-maven3/2.5.4-SNAPSHOT/build-info-extractor-maven3-2.5.4-20160205.203000-1.jar",
"mimeType" : "application/java-archive",
"size" : "67966",
"checksums" : {
"sha1" : "f608440d5aadc64a5ef50320a385aeae49abd58a",
"md5" : "a844a8ab8226ff25854127480f3cfeac"
},
"originalChecksums" : {
},
"uri" : "http://localhost:8081/artifactory/libs-snapshot-local/org/jfrog/buildinfo/build-info-extractor-maven3/2.5.4-SNAPSHOT/build-info-extractor-maven3-2.5.4-20160205.203000-1.jar"
}
$ curl -uadmin:password "http://localhost:8081/artifactory/api/search/latestVersion?g=org.jfrog.buildinfo&a=build-info-extractor-maven3&v=2.5.4-SNAPSHOT&repos=libs-snapshot-local"
2.5.4-20160205.203000-1
另一个选项是使用RESTAPI,它允许通过groupId和artifactId搜索最新的工件版本。
例如:
{
"repo" : "libs-snapshot-local",
"path" : "/org/jfrog/buildinfo/build-info-extractor-maven3/2.5.4-SNAPSHOT/build-info-extractor-maven3-2.5.4-20160205.203000-1.jar",
"created" : "2016-02-05T22:30:00.624+02:00",
"createdBy" : "admin",
"downloadUri" : "http://localhost:8081/artifactory/libs-snapshot-local/org/jfrog/buildinfo/build-info-extractor-maven3/2.5.4-SNAPSHOT/build-info-extractor-maven3-2.5.4-20160205.203000-1.jar",
"mimeType" : "application/java-archive",
"size" : "67966",
"checksums" : {
"sha1" : "f608440d5aadc64a5ef50320a385aeae49abd58a",
"md5" : "a844a8ab8226ff25854127480f3cfeac"
},
"originalChecksums" : {
},
"uri" : "http://localhost:8081/artifactory/libs-snapshot-local/org/jfrog/buildinfo/build-info-extractor-maven3/2.5.4-SNAPSHOT/build-info-extractor-maven3-2.5.4-20160205.203000-1.jar"
}
$ curl -uadmin:password "http://localhost:8081/artifactory/api/search/latestVersion?g=org.jfrog.buildinfo&a=build-info-extractor-maven3&v=2.5.4-SNAPSHOT&repos=libs-snapshot-local"
2.5.4-20160205.203000-1
给定的编号是由适当的存储库管理器创建的,您通常不需要这样做。或者你需要它?出于什么目的?在某些情况下,我们使用显式版本(出于不同的原因)作为依赖项。我需要在部署期间记录并存储它们,以备将来参考。更明确地说,我们的“pre-maven系统”允许依赖于“1.0.0-SNAPSHOT中的第三个版本”。出于传统和其他原因,我们需要以某种方式保持这种行为。我假设您正在使用某种CI解决方案,比如Jenkins?如果是,您可以在jenkins完成构建后通过REST API访问此信息(您需要使用deploy linke插件),您可以使用从jenkins提取信息…例如在Java中…这需要什么样的部署?如果使用maven deploy:deploy文件,我可能无法访问此信息。任何部署都将得到此响应(将请求放入部署URL)。但是,Maven不会显示响应主体。我建议您改用最新版本的搜索