使用CURL进行Nexus神器下载

时间:2017-08-07 04:39:17

标签: curl nexus

我正在尝试使用CURL下载上传到nexus的工件。但是我无法下载它。从命令提示符执行以下命令不会下载所需的zip文件,我正在使用Nexus管理员帐户

context = {
            'contact_name': contact_name,
            'contact_email': contact_email,
            'form_content': form_content,
          }

我是否正确形成了网址?我尝试浏览URL(http://nexusserver:8081/nexus/service/local/artifact/maven/redirect?r=Repo_Name&g=GroupID&a=artifactID&v=LATEST&p=zip),但在Nexus Repository Manager中找不到HTTP 404。我正在使用Nexus 3.0.2-02版。我是nexus的新手,非常感谢任何帮助。

由于

5 个答案:

答案 0 :(得分:3)

在较新版本的nexus中,您可以:

  1. 使用curl通过新的REST-API在您的关系中搜索Maven工件
  2. 解析json响应以提取下载链接
  3. 使用curl下载工件

bash归结为:

$ curl -sSL -X GET -G "http://mynexus3.local/service/rest/v1/search/assets" \
  -d repository=maven-snapshots \
  -d maven.groupId=my.group.id \
  -d maven.artifactId=my-artifact \
  -d maven.baseVersion=1.0-SNAPSHOT \
  -d maven.extension=jar \
  -d maven.classifier=jar-with-dependencies \
  | grep -Po '"downloadUrl" : "\K.+(?=",)' \
  | xargs curl -fsSL -o my-artifact.jar

第一块将搜索您的工件,并输出类似于

{
  "items" : [ {
    "downloadUrl" : "http://mynexus3.local/repository/maven-snapshots/my/group/id/my-artifact/1.0-SNAPSHOT/my-artifact-1.0-20180821.085657-1-jar-with-dependencies.jar",
    "path" : "/my/group/id/my-artifact/1.0-SNAPSHOT/my-artifact-1.0-20180821.085657-1-jar-with-dependencies.jar",
    "id" : "foo",
    "repository" : "maven-snapshots",
    "format" : "maven2",
    "checksum" : {
      "sha1" : "bar",
      "md5" : "baz"
    }
  } ],
  "continuationToken" : null
}

然后,您可以使用grep或类似工具提取下载URL。 最后,您传递提取的URL以再次卷曲以下载您的工件。 (已在Nexus 3.13上测试)

答案 1 :(得分:2)

您可以使用 curl -L -X GET 'https://MY_NEXUS/service/rest/v1/search/assets/download?sort=version&repository=MY-REPO&group=MY_GROUP&name=MY_ARTIFACT_NAME&maven.baseVersion=0.1-SNAPSHOT' --output some.file Nexus 3。

根据需要添加-u usr:pw

答案 2 :(得分:0)

工件现在位于类似于以下的URL下:

http://nexusserver:8081/repository/ {repositoryname} /

使用它和Maven路径的一些知识,你可以获得工件。

那就是说你正在使用的URL也不能正常工作,因为那是我们暂时删除的REST API调用。

在较新版本的Nexus Repository中,我们已经开始使用REST API了。如果你至少升级到3.3(因为它现在已经退出3.5),你可以访问这项工作的开头:

http://nexusserver:8081/swagger-ui/

这是测试版功能因此很可能会发生变化,例如,如果你写了一些内容并且它在新版本中出现故障,你需要修复它,但是你可以看看那里是否有一些端点这会对你有所帮助。

您可能想看看:http://localhost:8081/swagger-ui/#!/search/search

答案 3 :(得分:0)

Indeed Sonatype明智地决定以从Nexus2到Nexus3完全不兼容的方式更改REST API,以使系统管理员感到高兴。因此/ service / local / artifact / maven /在Nexus3中不再可用。

另一种独立于Nexus版本的方式是使用Maven:

mvn -Dmaven.wagon.http.ssl.insecure = true org.apache.maven.plugins:maven-dependency-plugin:3.0.1:copy -Dartifact = mvngroup:mvnartifactid:mvnversion:mvnpackaging -DoutputDirectory =。/

其中“ mvnpackaging”可以是jar,war,zip。...

答案 4 :(得分:0)

您可以使用以下端点:
'获取/ service / rest / v1 / search / assets / download'
它执行以下操作:
“此端点专门用于搜索一种资产,然后将请求重定向到该资产的downloadUrl”
示例:
'curl -u admin:admin123 -X GET'http://localhost:8081/service/rest/v1/search/assets?group=org.osgi&name=org.osgi.core&version=4.3.1&maven.extension=jar&maven.classifier'