【发布时间】: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 工作。