web-dev-qa-db-ja.com

Nexus3から単一/最新のアセット(JAR)をダウンロードします

ローカルのNexusリポジトリから最新/最新のアセット(JAR)をダウンロードしようとしています。 Nexus SwaggerUIを使用しています。ダウンロードするGETメソッドがあります。

GET /beta/search/assets/download

問題は..リポジトリに多くのアセットがあり、エラーが発生します、

Search returned multiple assets, please refine search criteria to find a single asset

検索を絞り込んで最新/最新のJARを取得するにはどうすればよいですか?

enter image description here

参考までに..現在、リポジトリには20以上のアセットがあり、以下に2つを示しています。

{
  "items": [
    {
      "downloadUrl": "http://localhost:8081/repository/snapshot/com/openshift/test/openshift-jenkins/0.0.1-SNAPSHOT/openshift-jenkins-0.0.1-20180214.211251-17.jar",
      "path": "com/openshift/test/openshift-jenkins/0.0.1-SNAPSHOT/openshift-jenkins-0.0.1-20180214.211251-17.jar",
      "id": "c25hcHNob3Q6ZTAxODhlZDA3MjhmYTY4ZmIwOGZkYzAyYTliZTQ4Zjg",
      "repository": "snapshot",
      "format": "maven2",
      "checksum": {
        "sha1": "53cdfcf964d0edd5fc6fdefa457e700eff47a1ca",
        "md5": "d0c82971b82957728d0b4c858150d56c"
      }
    },
    {
      "downloadUrl": "http://localhost:8081/repository/snapshot/com/openshift/test/openshift-jenkins/0.0.1-SNAPSHOT/openshift-jenkins-0.0.1-20180214.210246-15.jar",
      "path": "com/openshift/test/openshift-jenkins/0.0.1-SNAPSHOT/openshift-jenkins-0.0.1-20180214.210246-15.jar",
      "id": "c25hcHNob3Q6MjEwMzFkZmFmNDVlNWI1ODgwZTUwYjE5M2Y5NGVkNjk",
      "repository": "snapshot",
      "format": "maven2",
      "checksum": {
        "sha1": "b041f4b1e6bcb81366a72635f6c576ae46a83ec8",
        "md5": "af970e3e66c9cd20ff66f1074da04c21"
      }
    }
  ],
  "continuationToken": null
}
14
John Seen

検索を使用する代わりに、アーティファクトの再定義を使用することもできます(curl -Lはリダイレクトを追跡できます): /artifact/maven/redirect

curl -L "http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=log4j&a=log4j&v=LATEST" -o log4j.jar

ただし、 Nexus 3ではまだ利用できない可能性があります

その場合は、 最初にmaven-metadata.xmlをダウンロードして解析する にする必要があります。
そこから最新のタグを抽出できます。


2018年2月Sice、 NEXUS-12469 同じ質問をし、参照 NEXUS-14407 :REST '最新'で検索およびダウンロード、2019年第4四半期の3.16にリリースされました。

ユーザーが検索結果を「最新バージョン」でソートできるように、検索およびダウンロードサービスを拡張します。

http://localhost:8081/service/rest/v1/search/assets/download?repository=maven-central&group=junit&name=junit&sort=version&prerelease=false

curl -L -o myartifact.tar.gz -u xxx:xxx "http://localhost:8080/service/rest/v1/search/assets/download?sort=version&direction=desc&repository=maven-snapshots&maven.groupId=bla.bla.bla&maven.artifactId=bla-bla&maven.extension=tar.gz

したがって、次の組み合わせ:

  • APIエンドポイントassets/download
  • sort=version修飾子
2
VonC

V3(正確には3.17.0)のREST API)を使用すると、libの最新バージョンを取得するために以下が機能するはずです。

/service/rest/v1/search/assets/download?sort=version&maven.artifactId=artifactId&maven.groupId=groupId&maven.extension=jar
0
aruizca