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

问题描述 投票:41回答:4

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

maven nexus
4个回答
57
投票

请注意,这个答案与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”应该这样做。


3
投票

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

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

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

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

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


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版本。


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.