Nov*_*ser 93 ssl-certificate maven
我经常需要运行"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
Run Code Online (Sandbox Code Playgroud)
由于我需要与其他各种域集成,因此每次我必须将其证书添加到truststore.jks以防止SSL握手错误.
有什么办法可以配置mvn来忽略SSL错误.
rec*_*rec 201
您可以通过添加以下一个或多个命令行参数来禁用SSL证书检查:
-Dmaven.wagon.http.ssl.insecure=true - 允许对用户生成的证书使用轻松的SSL检查.-Dmaven.wagon.http.ssl.allowall=true - 启用服务器的X.509证书与主机名的匹配.如果禁用,将使用类似于检查的浏览器.-Dmaven.wagon.http.ssl.ignore.validity.dates=true - 忽略证书日期的问题.官方文件: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
Run Code Online (Sandbox Code Playgroud)
Ajay Gautam建议您也可以将上述内容添加到~/.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"
Run Code Online (Sandbox Code Playgroud)
Ric*_*ele 46
另一个对我有用的方法是告诉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>
Run Code Online (Sandbox Code Playgroud)
您的里程可能会有所不同.
Nic*_*Ben 23
创建一个文件夹${USER_HOME}/.mvn
并maven.config在其中放置一个名为的文件。
内容应该是:
-Dmaven.wagon.http.ssl.insecure=true
-Dmaven.wagon.http.ssl.allowall=true
-Dmaven.wagon.http.ssl.ignore.validity.dates=true
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
139936 次 |
| 最近记录: |