我在将 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 使用我的凭据(如果这确实是它没有做的事情)或其他可能出现的问题,我会非常高兴。
最佳答案
我现在已经让它工作了,通过在 Maven 发布插件中指定它只部署,而不是像默认那样部署和部署站点。
mvn site:deploy 失败并出现错误:Wagon 协议(protocol)“http”不支持目录复制。
当然,我最初的错误消息根本没有太多涉及网站。 生成有用错误消息的方法,Maven!
我在这里找到了一种强制抢先身份验证的方法:http://maven.apache.org/guides/mini/guide-http-settings.html (它没有解决我的问题,但它是标题的答案。)
关于maven - 对 Maven 发布强制进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17886428/