如何在Nexus Repository Manager OSS 3中手动部署工件


76

安装Nexus Repository Manager OSS 3后,我看不到Artifact Upload通过网页上传工件的选项。

在Nexus Repository Manager OSS 2.13中,可以选择执行此操作。

任何人都可以向我展示如何将工件上传到Nexus 3中的托管存储库的方式?

编辑从3.9.0版本开始,实现了此功能。


1
在我的回答中我解释了两种方法-http和https。
grajsek '16

17
他们到底为什么会忽略这一必不可少的功能?
Kees de Kooter '16

8
由于上载GUI仍然不是Nexus 3的一部分,因此我们创建了一种轻巧的解决方案来提供缺少的界面。您可以将html页面托管在Nexus3实例的原始存储库中,当您从浏览器访问该页面时,它将提供一个与Nexus2类似的上载GUI。可以在GitHub找到带有详细文档的项目。回答此问题时的发行版本也支持GAV样式和原始上传。
伊斯特万·拉贝尔(IstvánRábel)'17

Answers:


25

自版本3.9.0起在Nexus中实现。

  • 登录
  • 选择上载

在此处输入图片说明

  • 填写表格并上传工件

在此处输入图片说明


我们已经安装了3.7,功能矩阵说这应该存在(现在是3.10)。我很生气,试图弄清楚它是如何实现的。这个答案很有帮助。如果可以的话,我会投票给你10次。
约翰格拉斯曼

Bower(托管)存储库不具有上传功能:/
Arkadi,

@tobias扩展的典型值是什么?
Varun Verma

71

我正在使用Maven部署文件。

mvn deploy:deploy-file -DgroupId=my.group.id \
    -DartifactId=my-artifact-id \
    -Dversion=1.0.0.1 \
    -Dpackaging=jar \
    -Dfile=foo.jar \
    -DgeneratePom=true \
    -DrepositoryId=my-repo \
    -Durl=http://my-nexus-server.com:8081/repository/maven-releases/

更新: 如注释中所述,在URL中使用引号引起NoSuchElementException,

但我在我的Maven(〜/ .m2 / settings.xml)中添加了服务器配置。

<servers>
  <server>
    <id>my-repo</id>
    <username>admin</username>
    <password>admin123</password>
  </server>
</servers>

参考文献:

Maven Apache-指南第3方罐


是否需要启用或安装任何类似的东西才能部署?我尝试时遇到以下错误:2016年11月29日上午org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec执行INFO:I / O异常(java.net.SocketException )在处理对{}-> 127.0.0.1:8081的请求时被捕获:折断的管道,等等...
Eray Tuncer

不,只有纯正的行家。你有代理人吗?也许您需要忽略localhost /那里的127.0.0.1,或者此ip和端口是正确的?我将寻找其他建议来解决这一问题。
bpedroso

1
@ErayTuncer在我的示例中,我已使用nexus 3进行了验证。您能过去完整的堆栈跟踪信息吗?
bpedroso '16

7
要摆脱NoSuchElementException:从-Durl开关的值中删除引号。花了我2个小时的搜索时间。
SandorRacz

1
如果要创建新的settings.xml文件,请不要忘记将此“服务器”代码段包装到“ <settings> </ settings>”元素中。否则,本节将被忽略。
亚历克斯(Alex)


26

您可以通过其本机发布功能(例如,maven deploy,npm publish)上传工件。

您还可以通过简单的curl请求将工件上传到“原始”存储库,例如

curl --fail -u admin:admin123 --upload-file foo.jar 'http://my-nexus-server.com:8081/repository/my-raw-repo/'

2
是的,我可以做到这一点,mvn deploy并且效果很好,但是我没有意识到他们Artifact Upload从最近就删除了选项Nexus
帕维尔Głowacz

1
@PawełGłowacz有关3.x中上载功能的Jira问题在这里:issue.sonatype.org/browse/NEXUS-10121
mvreijn

有关--fail开关读卷曲的男子文件-它不是故障-安全
手杖


1

我的团队使用GradleNexus OSS 3.5.2

我找到了一个 解决方案:从locakhost上传艺术品(我检查了Nexus文档,未发现有关从文件夹上传工件的任何信息)=>我有共享目录(使用Apache httpd),并将其中一个连接到新的Nexus代理存储库。现在,当我想添加自己的工件时,可以将其上传到远程服务器的共享目录中。

也许有人觉得我的解决方案有用: 在此处输入图片说明

我的问题在这里是否可以从Sonatype Nexus Repository Manager 3.x的本地文件夹中部署工件


1

对于Windows:

mvn deploy:deploy-file -DgroupId=joda-time -DartifactId=joda-time -Dversion=2.7 -Dpackaging=jar -Dfile=joda-time-2.7.jar 
-DgeneratePom=true -DrepositoryId=[Your ID] -Durl=[YourURL]

0

要使用mvn deploy:deploy文件,必须添加〜。/ m2 / settings.xml

<settings>
  <servers>
    <server>
      <id>nexus-repo</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
  </servers>
</settings>

命令:

mvn deploy:deploy-file -DgroupId=com.example \
                                       -DartifactId=my-app \
                                       -Dversion=2.0.0 \
                                       -Dpackaging=jar \
                                       -Dfile=my-app.jar \
                                       -DgeneratePom=true \
                                       -DrepositoryId=nexus-repo \
                                       -Durl=http://localhost:8081/repository/maven-releases/
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.