在Maven版本上强制进行身份验证

时间:2013-07-26 16:26:03

标签: maven deployment nexus bad-request unauthorized

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

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

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

我使用-X标志运行它,看看我是否可以理解发生了什么,并且我发现第一次运行命令时,maven省略了settings.xml中提供的用户名和密码:

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

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

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

注意它说'作为开发者'

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

当我允许在Nexus中重新部署版本存储库时,我总是得到第一个版本(未经授权)。

如果有人能告诉我如何强迫Maven使用我的凭证(如果这确实是它没有做的那样)或者其他可能出错的地方,我会非常高兴。

1 个答案:

答案 0 :(得分:1)

我现在已经开始工作了,通过在maven发布插件中指定它只部署它,​​而不是默认部署和部署网站。

mvn site:deploy失败并显示错误:Wagon protocol' http'不支持目录复制。

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

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