2016-05-17 127 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"