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

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

请注意,这个答案与Nexus 2.X有关

核心Nexus“redirect” 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将返回存储库中保存的最新的时间戳快照。 同样的特殊价值“最新”应该做同样提供一个更新的发布版本不存在。

在我的nexus机器上的所有结果:

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

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

所以我不能直接访问它,因为我需要提供更多dynamic的细节。

如果我在浏览器中打开,而不是当我从某台Linux机器上安装它的例子,使用“… redirect?r = central-proxy&g = log4j&a = log4j&v = LATEST”

/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

所以我的临时解决scheme是使用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"

然后从本地文件安装最新版本。

如果您正在查找最新版本的快照,只需要说“1.0-SNAPSHOT”就会返回该工件快照的最新版本。

但是,如果您正在查找“最新版本”,则可以使用“v = LATEST”语法,但请记住,此关键字可以返回您正在查找的最新版本的快照或刚刚完成的版本,或者是同一个人工产物的其他分支,这个分支是前面的版本,仍然在“-SNAPSHOT”。

如果你正在寻找绝对最新的是,那么使用“v =最新”。 如果你正在寻找最新版本,你也可以要求“v = RELEASE”。 如果你有一个repos分组,你可以通过添加url来引用快照回购和释放仓库:

“…… V = RELEASE&R =公共”

这应该search你所有的“分组”回购。

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