2

我在让 Maven 发布到 Nexus 服务器时遇到问题。看起来,它拒绝使用我提供的用户名和密码(但也可能存在其他问题)。

当我第一次输入“mvn release:perform”时,我得到一个“未授权”错误。但是,在 Nexus 上创建了一些文件,即带有校验和等的 pom。当我第二次尝试(不更改任何内容)时,我得到一个不同的错误:'400 bad request'

当我删除文件并重试时,我再次收到第一个错误。

我已经用 -X 标志运行它,看看我是否能理解正在发生的事情,我发现我第一次运行命令时,maven 忽略了我在 settings.xml 中提供的用户名和密码:

[INFO] [DEBUG] 使用优先级为 0 的连接器 WagonRepositoryConnector 用于http://nexus.example.com/content/repositories/releases

当我第二次运行它时,它包括我的凭据:

[INFO] [DEBUG] 使用优先级为 0 的连接器 WagonRepositoryConnector 用于http://nexus.example.com/content/repositories/releases/作为开发人员

请注意它说“作为开发人员”

当然,我不知道它以不同方式打印它的事实实际上意味着什么,但似乎就是这样。

当我允许重新部署 Nexus 中的发布存储库时,我总是得到第一个变体(未授权)。

如果有人能告诉我如何强制 Maven 使用我的凭据(如果这确实是它没有做的事情)或者还有什么可能是错误的,我会非常高兴。

4

1 回答 1

2

通过在 Maven 发布插件中指定它只部署,而不是默认部署和部署站点,我现在已经让它工作了。

mvn site:deploy 失败并出现错误:Wagon 协议“http”不支持目录复制。

当然,我最初的错误消息根本没有提到网站。产生有用的错误消息的方法,Maven!

我在这里找到了一种强制抢先式身份验证的方法:http ://maven.apache.org/guides/mini/guide-http-settings.html (它没有解决我的问题,但它是对标题的回答。)

于 2013-07-27T19:01:16.703 回答