我有一个简单的Maven项目设置,可以部署到本地Nexus服务器。所有相关的配置元素都已就位(带有URL的<distributionManagement>
部分,带有用户名和密码的settings.xml文件中的<server>
元素等)。我知道设置是正确的,因为在Maven 3.0上,我可以部署。在Maven 3.0.4上,我有两个问题。
如果我尝试使用开箱即用的3.0.4部署,我会得到一个handshake_failure
。据我所知,这是因为3.0.4 switched backing HTTP clients。我已将服务器CA的证书包含在我的javax.net.ssl.trustStore
环境变量中由MAVEN_OPTS
指向的信任库中,以及javax.net.ssl.keyStore
,as instructed指定的密钥库中的客户端证书。同样,这适用于3.0。出于某种原因,它没有被新的HTTP客户端接收。
所以,我尝试将wagon-http-lightweight
JAR放到3.0.4的lib/ext/
目录中,这引出了我的第二个问题:一旦我强制使用lightweight
客户端,我停止获取handshake_failure
并开始获取HTTP 401.同样,用户名和密码在Maven 3.0下运行。它显然会提取用户名,因为使用-X
运行包含“
我已经打了好几个小时了,我已经走到了尽头。我欢迎一个解决方案,但我也欢迎任何有关我下一步行动的建议。
答案 0 :(得分:5)
我建议:
升级到3.0.5,现已推出,并且已经修复了许多与SSL相关的问题,并对故障车进行了升级。
读:
Maven 3.0.4 Release Notes。 3.0.4描述了关于httpclient的变化。
Maven 3.0.5 Release Notes。这有一个模糊的解释,但如果你仔细研究,你会发现:
The Maven Guide to HTTP Settings。这些反映了上述变化,我肯定会解决您的问题。