2016-05-17 115 views
8

我们刚刚升级了nexus安装到最新版本(3.x)。有什么方法可以获得给定快照工件的最新版本? Nexus 2有一个不错的API,不再支持。Sonatype Nexus 3 - 获取最新快照

同样的问题(但对于旧版本)已经在这里找到答案: Sonatype Nexus REST Api fetch latest build version

任何想法受到了高度评​​价。

最佳, 丹尼尔

+0

https://books.sonatype.com/nexus-book/3.0/reference/scripting.html#_writing_scripts? – 2016-05-17 18:08:52

+0

看起来是关于nexus插件,而不是通过REST API获取数据 – omickron

回答

2

Nexus 2有一个不错的API,不再支持。

这听起来像你指的是这些:

/service/local/artifact/maven/content 
/service/local/artifact/maven/redirect 

如果你问找到其中x,y,z是猜到了最新的XYZ-快照版本 - 的Nexus从未有过这个功能(它只适用于插件)。

这简直是不真实的 - 请参阅下面的文章,它清楚地显示您可以指定最新版本,发布版本或SNAPSHOT基本版本。

https://support.sonatype.com/hc/en-us/articles/213465488-How-can-I-retrieve-a-snapshot-if-I-don-t-know-the-exact-filename-

这是可能的,但不是在1衬垫。

是的 - 除非你有一个方便的工具,如artifact-resolver它使用一行命令来获取工件。

0

这是可能的,但不是在1衬垫。您需要为每个快照构件获取maven-metadata.xml(请注意,多模块项目对于每个模块(包括父项)都有不同的时间戳)。

我们使用xlstproc来提取相关变量,所以我们仍然可以从命令行运行,而不使用像Maven或Ivy这样的重量级工具来执行解析。

1

如果您要求x.y.z-SNAPSHOT那么默认情况下会下载最新的x.y.z-timestamp快照版本。 Nexus never had this functionality(它只是工作的插件) - 无需如果你问找到最新版本x.y.z-SNAPSHOTxyz都猜到做任何额外的

。我不认为这有什么好的用例。如果这是必要的,你可能做错了什么。你总是应该使用特定的版本。实际上,即使对于第一个功能,我也想不到很好的用例。

0

什么是笑话:Nexus 3没有REST API。

我发现了一个可以缓解我的问题的黑客攻击。事实证明,有理由有一个不错的maven_artifact模块,以某种方式能够找出最新的快照。你可以在当地运行。所以它看起来像这样:

ansible all -i localhost, -c local -m maven_artifact -a "repository_url=https://my-nexus/repository/maven-snapshots/ group_id=com.whatever artifact_id=my-artifact version=2.0-SNAPSHOT dest=./my-artifact.jar"