通过REST API,POST将工件发布到Nexus

时间:2012-06-14 08:09:05

标签: rest publish nexus

不要擅长Nexus管理......

在“手动”上传工件时打开控制台以查看网络调用。想要跳过使用Maven或Ivy上传到Nexus。一切查询都通过ExtJS XHR调用,除了发布工件信息,这些信息在Chrome开发者工具中显示为文档调用(假设这是通过ExtJS发布的表单提交)。

没有尝试使用curl进行模拟(如果可能的话,不知道如何在curl中处理多部分表单)但这是除了从Ivy或Maven进行传统发布之外“发布”工件的唯一方法吗?看起来Nexus有一个Java API但希望保留在REST HTTP世界中(希望Nexus REST服务基本上可以使用apache的HTTPCLIENT等多部分表单发布)。

2 个答案:

答案 0 :(得分:18)

使用curl:

curl -v \
    -F "r=releases" \
    -F "g=com.acme.widgets" \
    -F "a=widget" \
    -F "v=0.1-1" \
    -F "p=tar.gz" \
    -F "file=@./widget-0.1-1.tar.gz" \
    -u myuser:mypassword \
    http://localhost:8081/nexus/service/local/artifact/maven/content

对于不使用maven的人来说,这将适用于非java依赖项。请参阅我对此答案的评论:https://stackoverflow.com/a/19699327/231573

答案 1 :(得分:0)

从Sonatype发现此回复:

简而言之,可以直接POST工件,但是Maven模块需要的其他文件呢?最重要的是POM ...

上传文件的最简单方法是使用deploy-file插件:

Upload artifacts to Nexus, without Maven

是否有令人信服的理由不使用Maven客户端?