如何告诉Maven忽略SSL错误(并相信所有的证书)?
我经常需要运行“mvn”命令:
mvn -f pom.xml clean install -Dmaven.test.skip=false --settings /Users/myhome/settings.xml -X -Djavax.net.ssl.trustStore=/Users/myhome/truststore.jks -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStorePassword=dummy -Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol -U
由于我需要与各种其他域进行集成,因此每次我必须将其证书添加到truststore.jks以防止SSL握手错误。
有什么办法可以configurationmvn忽略SSL错误。
您可以通过添加以下一个或多个命令行参数来禁用SSL证书检查:
-
-Dmaven.wagon.http.ssl.insecure=true
– 对用户生成的证书启用宽松的SSL检查。 -
-Dmaven.wagon.http.ssl.allowall=true
– 启用服务器X.509证书与主机名的匹配。 如果禁用,将使用类似支票的浏览器。 -
-Dmaven.wagon.http.ssl.ignore.validity.dates=true
– 忽略证书date的问题。
官方文档: http : //maven.apache.org/wagon/wagon-providers/wagon-http/
这是一个简单的复制和粘贴的oneliner:
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true
Ajay Gautambuild议你也可以将上面的代码添加到~/.mavenrc
文件中,而不必每次都在命令行中指定它:
$ cat ~/.mavenrc MAVEN_OPTS="-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true"
另一种方法是告诉Maven使用http:而不是https:当使用Maven Central时,通过在settings.xml中添加以下内容:
<settings> . . . <mirrors> <mirror> <id>central-no-ssl</id> <name>Central without ssl</name> <url>http://repo.maven.apache.org/maven2</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> . . . </settings>
你的里程可能会有所不同。
您也可以将m2econfiguration为使用HTTP而不是HTTPS
力M2E使用的-HTTP-INSTEAD-OF-HTTPS