如何在Nexus 2.x中提供对工件的最新快照的URL访问?

时间:2012-02-14 16:25:26

标签: maven nexus

我想提供一个简单的URL,它将始终返回最新版本的工件快照版本。简单来说,我的意思是URL不会改变,或者要求用户浏览目录并检查时间戳。

4 个答案:

答案 0 :(得分:60)

  

请注意,此答案与Nexus 2.X相关

核心Nexus“重定向”REST API可用于从指定的存储库中检索任何版本的工件:

例如:

https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=log4j&a=log4j&v=LATEST

v 参数可以是1.0-SNAPSHOT之类的值,在这种情况下,Maven将返回存储库中保存的最新时间戳快照。如果不存在更新版本,则特殊值“LATEST”应该同样地执行相同的操作。

答案 1 :(得分:3)

如果您正在寻找最新版本的快照,只需要说," 1.0-SNAPSHOT"将返回该工件快照的最新版本。

如果您正在寻找"最新版本"然而," v = LATEST"语法将起作用,但请记住,此关键字可以返回您正在查找的快照的最新版本,或者刚刚完成的版本,或者同一个工件的OTHER分支,它是一个版本的版本,但仍然是" -SNAPSHOT"

如果您正在寻找绝对最新的,那么请使用" v = LATEST"。如果您正在寻找最新版本,您也可以要求" v = RELEASE"。如果您有一个repos分组,则可以通过添加以下内容来引用快照存储库和发布存储库:

" ... V = RELEASE&安培; R =公共"

那应该搜索你所有的"分组"回购。

答案 2 :(得分:2)

我的nexus机器上的所有结果都是:

http://nexushost.domain/nexus/content/repositories/snapshots/com/company/elasticsearch-river-mongodb/1.2.3-SNAPSHOT/

是这样的: * -1.2.3-20131204.143026-1.zip

所以我无法直接访问它,因为我需要提供更多动态的细节。

“... redirect?r = central-proxy& g = log4j& a = log4j& v = LATEST”的例子如果我在浏览器中打开但是当我从某些linux机器上安装它时不工作:

/usr/share/elasticsearch/bin/plugin --url "http://localhost:8081/nexus/service/local/artifact/maven/redirect?r=snapshots&g=com.comapny.application&a=elasticsearch-river-mongodb&v=1.2.3-SNAPSHOT&p=zip" --install river-mongodb

所以我的临时解决方案是使用wget:

wget -O /tmp/elasticsearch-river-mongodb.zip "http://nexushost.domain/nexus/service/local/artifact/maven/redirect?r=snapshots&g=com.comapny.application&a=elasticsearch-river-mongodb&v=1.2.3-SNAPSHOT&p=zip"

然后从本地文件安装LATEST版本。

答案 3 :(得分:-1)

每个存储库都有自己的URL(您可以在Repository浏览器中看到它)。如果您打开它,则可以浏览组和工件ID到您的工件。这是你的网址,例如:http://nexushost.domain/content/repositories/snapshots/com/example/group/artifact/1.2.3-SNAPSHOT/1.2.3-SNAPSHOT.jar