maven release – > peer未通过身份validation

我正在尝试释放我的软件(我之前从未这样做过),到目前为止我已经能够执行mvn release:prepare。 当我正在执行release:执行时出现以下错误:

 [INFO] [ERROR]无法执行目标org.apache.maven.plugins:maven-deploy-plug
 in:2.7:在项目img2stl上部署(default-deploy):无法部署工件:C
不应该传递神器nl.byterendition:img2stl:jar:0.9 from / to byterenditio
 n-releases(https:// localhost:443 / svn / repo / releases):peer未通过身份validation - >
 [帮助1]

我在localhost:443设置了一个本地密码保护的svn存储库,所以我将以下内容添加到我的.m2文件夹中的settings.xml

编辑包括Edwin Buck的回答:

    byterendition-releases username password   byterendition-snapshots username password    

这是我的pom的有用部分:

   byterendition-releases https://localhost:443/svn/repo/releases   byterendition-snapshots https://localhost:443/svn/repo/snapshots   

如何让maven访问svn存储库?

好吧,正如Edwin Buck建议我不应该使用localhost,但由于我无法让它工作,否则我想我会尝试使用我用于工作的远程SVN服务器。 现在我得到一个不同的错误:

 [INFO] [ERROR]无法执行目标org.apache.maven.plugins:maven-deploy-plug
 in:2.7:在项目img2stl上部署(default-deploy):无法部署工件:C
不应该传输神器nl.byterendition:img2stl:jar:0.9.5 from / to byterendit
 ion-releases(https://svn.science.ru.nl/repos/estens/releases/):无法转换
 fer文件:https://svn.science.ru.nl/repos/estens/releases/nl/byterendition/img2s
 TL / 0.9.5 / img2stl-0.9.5.jar。 返回码为:409,ReasonPhrase:Conflict。  - > [Hel
第1页]

我再次可以从Eclipse访问这个repo。 有谁知道我做错了什么?

从版本3.0.5开始,Maven会检查https连接上的SSL证书。 您可以通过添加命令行参数来临时解决此问题

 -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true 

将SSL证书安装到JRE中应该永久解决问题。

官方文件: http : //maven.apache.org/wagon/wagon-providers/wagon-http/

步骤1.将DER格式* .cer(/X.509 .cert)文件中的证书下载到本地目录

(您可以在浏览器中执行此操作;对于Chrome,请单击“锁定”符号,“显示Ceritficate” – >“复制到文件”)

步骤2.将其导入Java信任库

\ Program_Files \ Java \ jdk1.6.0_45 \ jre \ lib \ security>%JAVA_HOME%\ jre \ bin \ keytool -v -alias mavensrv -import -file d:\ temp \ apacher.cer -keystore trust.jks

步骤3.将maven的路径作为环境变量

设置MAVEN_OPTS = -Xmx512m -Djavax.net.ssl.trustStore =%JAVA_HOME%/ jre / lib / security / trust.jks -Djavax.net.ssl.trustStorePassword = changeit -Djavax.net.ssl.keyStore =%JAVA_HOME%/ jre / lib / security / trust.jks -Djavax.net.ssl.keyStoreType = jks -Djavax.net.ssl.keyStorePassword = changeit

您在settings.xml条目是服务器ID为localhost但您正在访问具有byterendition-releasesbyterendition-snapshots id的存储库。

这意味着maven将不会重新认证并将凭证与这两个服务器相关联,因为它们具有不同的“身份”。 您将需要用于byterendition-releasesbyterendition-snapshots settings.xml条目。

现在,如果您添加了类似的条目

   byterendition-releases user password  

然后,maven将使用用户名和密码password满足对byterendition-releases的https身份validation质询,因为它具有用于byterendition-releases的服务器凭据条目。

您还必须为byterendition-snapshots添加一个额外的条目,或者将其设置为与byterendition-releases具有相同的服务器ID。

—编辑以跟上更新的问题—

您将使用localhost URL访问您的存储库。 虽然如果您的存储库实际上位于同一台主机上,这可能会有效,但有很多原因可能导致它无效。

  1. SVN存储库位于远程SVN服务器上,因此在远程服务器以外的其他位置进行开发时将失败。
  2. HTTP服务器未配置为解析localhost的方式与解析外部请求的方式完全相同。

无论哪种方式,沟渠localhost。 如果您无法获得机器的稳定DNS名称,即使输入IP地址也是更好的选择。 如果您的SVN服务器使用DHCP,那么请花时间让DynamicDNS正常工作(但实际上,如果可以,您应该为服务器获取静态IP)。

我发现Java版本可以在这里发挥作用。

使用Maven 3.0.5我在Java 6中遇到此错误,但切换到Java 7(或更新版本)为我解决了这个问题。

连接到服务器时看起来像SSL问题。 也许在用户名和密码检查之前。

您是否使用SSL客户端身份validation配置svn服务器? 这意味着您需要将客户端证书发送到服务器。

升级到OSX Mavericks后,我遇到了很多安全问题

  • Amazon AWS的SSL问题
  • peer未通过Maven和Eclipse进行身份validation
  • trustAnchors参数必须为非空

我应用了这个JAVA更新并修复了我的所有问题: http : //support.apple.com/kb/DL1572?viewlocale = en_US

我正在使用maven 3.5.3,我选择通过根据上述答案添加命令行参数来临时修复此SSL问题。 但参数的格式似乎有所改变。

 -D maven.wagon.http.ssl.insecure=true -D maven.wagon.http.ssl.allowall=true 

对不起我无法评论@Alex Punnen的回答,所以我得写一个新答案。