Nexus 接受上传但表示失败

Posted

技术标签:

【中文标题】Nexus 接受上传但表示失败【英文标题】:Nexus accepts upload but says it failed 【发布时间】:2014-11-18 03:24:50 【问题描述】:

当我在父 POM 上执行 mvn release:perform 时,服务器正在响应有关其中一个子项目的错误(文件名已编辑):

[ERROR] 未能执行目标 org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file 项目上的(default-cli):无法部署工件:无法 从/向存储库传输工件:传输文件失败。 返回码为:400,ReasonPhrase:错误请求。

但是,此子项目的所有文件已成功上传!我看到了一个新目录(以发布版本号命名),其中包含人们期望的所有 .jar、.pom、.md5 和 .sha1 文件。

我无权访问 Nexus 服务器,但我想知道可能是什么原因导致此问题以及如何解决此问题。 Maven 是否有可能尝试两次上传这个特定的子项目?如果是这样,为什么 Maven 会这样做,我该如何阻止它?

更新:如果您遇到同样的问题,请查看this post 中点赞最多的答案。我跑了mvn help:effective-pom,发现有问题的项目实际上有两次部署阶段的执行。删除其中一个处决解决了我的问题。

【问题讨论】:

您尝试部署的版本是否已经存在? @wrongAnswer: 不。当错误第一次发生时,我认为可能是问题所在,所以我明确删除了工件的新目录(以及另一个没有错误上传的子项目的目录)和又试了一次。这导致了同样的问题:两个子项目都上传了,但第二个子项目再次给出了“Bad Reqeust”,即使它上传成功。 你能给出完整的错误... 这是我在进行类似设置时遇到的错误:gist.github.com/arun-gupta/4cb82e44a29561c3d6a4 即使您部署到 localhost:8081,您也无权访问 Nexus?我会尝试在工件上执行 wget 并查看它是否真的存在以及它是否有效并使用您期望的时间戳构建(在清单文件中)。 【参考方案1】:

我在发布maven 多模块项目时遇到了同样的问题。第一次发生错误但部署目标已经联系nexus然后创建适当的路径。假设“发布”repo 是一次写入的,我第二次触发它时,nexus 拒绝覆盖路径。

因此,在这种情况下,您可能会要求您的管理员删除 repo ... 或创建一个新版本。

PS : 迟到总比没有好;)

【讨论】:

以上是关于Nexus 接受上传但表示失败的主要内容,如果未能解决你的问题,请参考以下文章

Nexus3私服 基于命令行上传文件

Watchkit 上传到 App Store 失败

图片上传失败 AFHTTPRequestOperationManager

Maven Nexus 问题 - 403 Forbidden 授权失败

如何通过网页方式将jar包上传到nexus

windows安装的Nexus 启动失败