如何从Nexus 2获取指定小版本系列的最新SNAPSHOT工件?
好问题!在Nexus 2的REST API里,我们可以通过版本范围参数精准定位特定大版本系列的最新快照,也能直接指定具体版本下载对应的工件。下面分两种情况说明:
获取1.0版本系列的最新工件
Nexus 2支持Maven的版本范围表达式,你可以用这个来限定只查询1.0.x系列的快照版本。有两种常用的写法,效果完全一致:
- 区间范围写法:
[1.0.0,1.1.0),表示“大于等于1.0.0,小于1.1.0”的所有版本,刚好覆盖1.0.x系列 - 通配符简写:
1.0.*,这是Maven对上述区间的简化写法
把版本范围作为v参数传入API请求即可,最终的请求URL如下:
http://ip/nexus/service/local/artifact/maven/content?g=com.example.group&a=artifact&v=1.0.*&r=snapshots
或者用区间写法:
http://ip/nexus/service/local/artifact/maven/content?g=com.example.group&a=artifact&v=[1.0.0,1.1.0)&r=snapshots
这两个请求都会返回1.0.2-SNAPSHOT,也就是你1.0系列里的最新快照。
直接下载1.0.2-SNAPSHOT的工件
要直接获取指定版本的工件,只需要把v参数的值明确设为1.0.2-SNAPSHOT就行。如果你的工件有特定的打包类型(比如jar、war)或者分类器(比如sources、javadoc),可以额外加上p(打包类型)和c(分类器)参数,示例如下:
基础版(默认打包类型):
http://ip/nexus/service/local/artifact/maven/content?g=com.example.group&a=artifact&v=1.0.2-SNAPSHOT&r=snapshots
指定jar打包类型:
http://ip/nexus/service/local/artifact/maven/content?g=com.example.group&a=artifact&v=1.0.2-SNAPSHOT&p=jar&r=snapshots
带sources分类器的版本:
http://ip/nexus/service/local/artifact/maven/content?g=com.example.group&a=artifact&v=1.0.2-SNAPSHOT&p=jar&c=sources&r=snapshots
这样就能直接下载到你想要的1.0.2-SNAPSHOT版本的工件了。
内容的提问来源于stack exchange,提问作者user1985273
相关产品推荐
相关产品推荐

