从Nexus3下载单个/最新资产(JAR)

Joh*_*een 14 maven-2 nexus sonatype maven-plugin maven

我正在尝试从我当地的Nexus仓库下载最新/最新资产(JAR).我正在使用Nexus Swagger UI.它有一个GET方法下载,

GET /beta/search/assets/download
Run Code Online (Sandbox Code Playgroud)

问题是..我在repo中有很多资产,它给出了一个错误,

Search returned multiple assets, please refine search criteria to find a single asset
Run Code Online (Sandbox Code Playgroud)

如何优化搜索并获取最新/最新的JAR?

在此输入图像描述

仅供参考.目前,我在回购中拥有20多个资产,下面我展示其中两个...

{
  "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
}
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 4

您可以使用工件重定向(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
Run Code Online (Sandbox Code Playgroud)

不过,它可能还不适用于 Nexus 3

在这种情况下,您需要首先下载并解析maven-metadata.xml.
您可以从那里提取最新的标签。


自 2018 年 2 月起,NEXUS-12469提出了同样的问题,并引用了NEXUS-14407:REST Search & Download by 'Latest',于 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
Run Code Online (Sandbox Code Playgroud)

因此,以下组合:

  • API端点assets/download
  • sort=version修饰语