6

Nexus 3 にはまだ REST API がないことは周知のとおりです。これは私にとって非常に奇妙です。wget または curl を使用してアーティファクトを手動でダウンロードすることしかできません。しかし、Maven 3 を使用しているため、すべてのスナップショット アーティファクトは、次のようなタイムスタンプを使用して名前が付けられます。

myartifact-1.0-20161215.141522-4.tar.gz

リポジトリから最新のスナップショットを取得する方法を知りたいですか? アーティファクトのダウンロード プロセスを自動化したいのですが、名前が変更されたため、これを実現する方法が見つかりませんでした。

ありがとう。

4

5 に答える 5

6

リポジトリに SNAPSHOT を 1 つだけ保持することが有効なオプションである場合

この API 呼び出しは機能します。${nexusUrl}/service/rest/beta/search/assets/download?maven.groupId=${groupId}&maven.artifactId=${artifactId}&maven.baseVersion=${version}

ついにNexus3 APIが登場しましたが (これについては Sonatypeのブログを参照してください)、この API はまだ最新の SNAPSHOT バージョンを取得する手段を提供していません。この状況は将来改善されることを願っています: NEXUS-14407はこの機能要求を追跡しています。

しかし、それまでは、Maven - Delete SNAPSHOTタスクを定義して問題を回避しています。

Maven - スナップショットを削除

毎分実行するように構成し、0 日より古い 1 つのスナップショット バージョンを除くすべてを削除します。

ここに画像の説明を入力

于 2018-06-27T09:23:09.230 に答える
3

これは現在不可能です。特にREST APIを構築する際に、このようなユースケースを検討しており、近い将来にこの機能を期待する必要があります.

コメントで示唆されているように、当面は引き続き Nexus Repository Manager 2 を使用するのが最適なユース ケースがあるかもしれません。Groovy とスクリプトに精通している場合は、Integration API を介して Nexus Repository Manager 3 を拡張して、説明したことを実行することもできます (私はそれを見てみたいと思います)。使用方法の詳細はこちら: https://books.sonatype.com/nexus-book/reference3/scripting.html

于 2016-12-15T15:29:57.517 に答える
0

ここの別の投稿で答えを見つけました:Nexus 3 Rest api to check if component exist

でコメントしました

found = found.unique().sort(); 

次のパラメーターを使用して呼び出します。

-d'<reponame>,<groupid>,<artifactid>,<version>-SNAPSHOT,latest'

YMMVですが、これでうまくいきました。その後、このクエリの結果を使用して wget を作成できました。

于 2017-10-20T18:38:25.573 に答える