【问题标题】:Nexus 3 - File Upload to hosted Maven RepositoryNexus 3 - 文件上传到托管的 Maven 存储库
【发布时间】:2017-06-16 12:40:28
【问题描述】:

我想将一些文件上传到我的 Nexus OSS 3 实例上新生成的托管 Maven 存储库。

我需要使用 curl(不是 maven 或其他东西)进行上传。

我尝试了以下语句(不需要端口 - 我有一个 NginX 作为反向代理)

curl -v -F r=releases -F hasPom=false -F e=jar -F g=com.my.group -F a=myArtifact -F v=1.0.0-RC1 -F p=jar --upload-file "myArtifact.jar" -u user:password123 http://myNexusInstance.com/repository/myRepository

此命令产生以下错误:

* Server auth using Basic with user 'user'
PUT /repository/myRepository HTTP/1.1
Host: myNexusInstance.com
Authorization: Basic xxxx=
User-Agent: curl/7.49.1
Accept: */*
Transfer-Encoding: chunked
Expect: 100-continue
HTTP/1.1 100 Continue
} [16380 bytes data]
HTTP/1.1 400 Invalid path for a Maven 2 repository

我尝试用谷歌搜索,但没有找到任何解决方案(在 Nexus OSS 3.x 文档和其他论坛中都没有)

使用以下配置值设置 Nexus 存储库:

  • 格式:maven2
  • 类型:托管
  • 版本政策:发布
  • 布局政策:严格
  • 部署策略:允许重新部署(也测试了“禁用重新部署”)

这里有什么问题?

【问题讨论】:

  • 作为“解决方法”,我使用了“mvn deploy:deploy-file”,它需要现有的 maven 安装但可以工作。有一个独立于工具的上传机制会很好。
  • 如果可行,我会使用 Charles 之类的工具来查看它使用的端点。从那里你可以很容易地重新调整 curl 工作。

标签: curl nexus sonatype


【解决方案1】:

您不能使用 Nexus Repository 3 中的服务网址。要执行您正在尝试执行的操作,请尝试以下操作:

curl -v -u admin:admin123 --upload-file myArtifact.jar http://nexusURL:nexusPORT/repository/myRepository/com/my/group/myArtifact/1.0.0-RC1/myArtifact-1.0.0-RC1.jar

这应该可以解决问题吗?

对于一些好的阅读,您可以查看以下链接,该链接解释了远程存储库布局(并希望有助于解释为什么我建议做的工作):

https://cwiki.apache.org/confluence/display/MAVEN/Remote+repository+layout#Remoterepositorylayout-Repositoryartifactlayout

【讨论】:

  • 不,相同的错误消息(Maven 2 存储库的路径无效)。我认为 --upload-file 调用仅适用于原始存储库
  • 已更新,试一试。
  • 您是在 Nexus Repository 中使用上下文路径还是只是 /?
  • 以下对我有用,禁用重新部署、发布和严格的 nexus 3.2.1 布局策略; curl -v --user username:password --upload-file /path/sample.war http://nexus.company.com:8081/nexus/repository/myrepo/com/company/sample-app/1.0.1/sample-app-1.0.1.war 注意,我们将应用上下文设置为 /nexus,默认情况下在 nexus 3 中不存在。
  • 使用 curl 命令,你必须知道文件名 (myArtifact-1.0.0-RC1) 必须等于存储库最后部分的串联路径 (myArtifact/1.0.0-RC1)curl -v -u admin:admin123 --upload-file myArtifact.jar http://nexusURL:nexusPORT/repository/myRepository/com/my/group/myArtifact/1.0.0-RC1/myArtifact-1.0.0-RC1.jar
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-19
  • 1970-01-01
  • 2021-02-27
  • 2021-01-09
  • 1970-01-01
  • 2012-12-10
  • 2018-02-19
相关资源
最近更新 更多