nexus インストールを最新リリース (3.x) にアップグレードしました。特定のスナップショット アーティファクトの最新バージョンを取得する方法はありますか? Nexus 2 には、もうサポートされていない便利な API がありました。
同じ質問 (古いバージョンの場合) がここで回答されています: Sonatype Nexus REST Api fetch latest build version
どんなアイデアでも大歓迎です。
ベスト、ダニエル
nexus インストールを最新リリース (3.x) にアップグレードしました。特定のスナップショット アーティファクトの最新バージョンを取得する方法はありますか? Nexus 2 には、もうサポートされていない便利な API がありました。
同じ質問 (古いバージョンの場合) がここで回答されています: Sonatype Nexus REST Api fetch latest build version
どんなアイデアでも大歓迎です。
ベスト、ダニエル
Nexus 2 には、もうサポートされていない便利な API がありました。
あなたがこれらを参照しているように聞こえます:
/service/local/artifact/maven/content
/service/local/artifact/maven/redirect
x、y、z が推測される最新の xyz-SNAPSHOT バージョンを探している場合、Nexus にはこの機能がありませんでした (プラグインでのみ機能しました)。
これはまったく正しくありません。次の記事を参照してください。LATEST、RELEASE、または SNAPSHOT ベース バージョンを指定できることが明確に示されています。
可能ですが、ワンライナーではできません。
はい - アーティファクトを取得するために 1 行のコマンドを使用するartifact-resolverなどの便利なツールがない限り。
curl
、jq
、sort
およびを使用してワンライナーをバッシュしtail
ます。
NEXUS_URL=https://your-nexus.com
MAVEN_REPO=maven-snapshots
GROUP_ID=...
ARTIFACT_ID=...
VERSION=2.0.1-SNAPSHOT
FILE_EXTENSION=jar
download_url=$(curl -X GET "${NEXUS_URL}/service/rest/v1/search/assets?repository=${MAVEN_REPO}&maven.groupId=${GROUP_ID}&maven.artifactId=${ARTIFACT_ID}&maven.baseVersion=${VERSION}&maven.extension=${FILE_EXTENSION}" -H "accept: application/json" | jq -rc '.items | .[].downloadUrl' | sort | tail -n 1)
wget $download_url
要求するとx.y.z-SNAPSHOT
、デフォルトで最新のx.y.z-timestamp
スナップショット バージョンがダウンロードされます。追加の操作は必要ありません
、、が推測される最新x.y.z-SNAPSHOT
バージョンを探している場合-Nexusにはこの機能がありませんでした(プラグインでのみ機能しました)。そして、これには良いユースケースはないと思います。これが必要な場合は、おそらく何か間違ったことをしているでしょう。常に特定のバージョンで作業する必要があります。実際、最初の機能についても、良いユースケースが思い浮かびません。x
y
z