19

我想永久链接到 Artifactory 中工件的最新快照版本。如果我们使用 1.0-SNAPSHOT,我想要一个下载最新 1.0-SNAPSHOT JAR 的 URL。我可以通过在我们的服务器上找到最新的工件http://hostname/artifactory/libs-snapshot/groupId/artifactId/1.0-SNAPSHOT/。除了检查时间戳之外,我还可以通过打开 maven-metadata.xml 并将 metadata/versioning/snapshot 时间戳和 buildNumber 与同一目录中的 JAR 匹配来确定哪个是最新的。这可以编写脚本,但理想情况下,Artifactory 已经有办法以这种方式构建永久链接。Artifactory 是否提供这样的 URL?

4

5 回答 5

6

对 URL 名称中带有 artifactId-1.0-SNAPSHOT.jar 的条目进行正常查询应该会自动返回最新的快照。请参阅此处的文档

一件事:如果没有 pom,这基于最新的创建日期,或者如果有 pom,则基于最新创建的 pom。混合使用 pom 和非 pom 部署可能会导致奇怪的结果!

于 2013-07-12T08:42:32.420 回答
2

我尝试使用 shell 脚本,它对我有用。

Step1 : 通过点击用户名或创建普通用户获取您的用户帐户的加密密码。转到以下链接中的使用安全密码部分 http://www.jfrog.com/confluence/display/RTF/Centrally+Secure+Passwords

第 2 步:在您的本地计算机上创建一个临时文件夹并输入此 curl(可能是 Windows 的 wget)命令:

curl -o tmp/foo.jar --user <username>:<encrypted_password> <artifactory_url>/list/libs-snapshot-local/com/search/foo/1.0/foo-1.0-SNAPSHOT.JAR

您在 tmp 文件夹中的 foo.jar 是最新版本。如果我们没有像上面那样给出时间戳,它将下载该版本中的最新工件。希望这可以帮助!

于 2014-04-15T19:05:35.913 回答
1

这可能会有所帮助:

如何从 Artifactory 存储库下载最新的工件?

尽管 Artifactory 的免费版本中没有永久链接功能,但可以按照您的建议轻松编写脚本。我在引用的问题中提供了一个快速脚本来执行此操作。

希望能帮助到你。

于 2013-07-21T14:37:49.497 回答
1

另一个可移植选项是使用 maven 命令行:

mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get -DartifactId=[artifactId] -DgroupId=[groupId] -Dversion=[version] -Ddest=[dest file]

于 2019-05-15T12:07:58.263 回答
0

这对我有用(没有搜索 API,只有直接的工件 URL):

curl -O -J --user <username>:<encrypted_password> http://hostname/artifactory/libs-snapshot/groupId/artifactId/1.0-SNAPSHOT/artifactId-1.0-SNAPSHOT.jar

基本上在工件名称中使用 1.0-SNAPSHOT 会下载最新版本的 1.0-SNAPSHOT 快照。

于 2021-06-11T07:45:35.900 回答