IDEA中运行Maven package报错:
Could not transfer artifact org.apache.maven.plugins:maven-resources-plugin:pom:2.6 from/to central (https://repo.maven.apache.org/maven2): java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
使用mvn package -X再次执行打包,查看报错详情,截取了一部分如下:
Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at java.security.cert.PKIXParameters.setTrustAnchors (PKIXParameters.java:200)
at java.security.cert.PKIXParameters. (PKIXParameters.java:120)
at java.security.cert.PKIXBuilderParameters. (PKIXBuilderParameters.java:104)
at sun.security.validator.PKIXValidator. (PKIXValidator.java:88)
at sun.security.validator.Validator.getInstance (Validator.java:179)
at sun.security.ssl.X509TrustManagerImpl.getValidator (X509TrustManagerImpl.java:312)
at sun.security.ssl.X509TrustManagerImpl.checkTrustedInit (X509TrustManagerImpl.java:171)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted (X509TrustManagerImpl.java:184)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted (X509TrustManagerImpl.java:124)
at sun.security.ssl.ClientHandshaker.serverCertificate (ClientHandshaker.java:1508)
at sun.security.ssl.ClientHandshaker.processMessage (ClientHandshaker.java:215)
at sun.security.ssl.Handshaker.processLoop (Handshaker.java:1024)
at sun.security.ssl.Handshaker.process_record (Handshaker.java:954)
at sun.security.ssl.SSLSocketImpl.readRecord (SSLSocketImpl.java:1065)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake (SSLSocketImpl.java:1384)
at sun.security.ssl.SSLSocketImpl.startHandshake (SSLSocketImpl.java:1412)
at sun.security.ssl.SSLSocketImpl.startHandshake (SSLSocketImpl.java:1396)
at org.apache.maven.wagon.providers.http.httpclient.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket (SSLConnection
SocketFactory.java:396)
setTrustAnchors方法的作用是设置可信CA,从maven仓库(http://maven.aliyun.com/nexus/content/groups/public/org/apache/maven/surefire/surefire-junit4/2.12.4/surefire-junit4-2.12.4.pom)下载依赖用的https协议,所以需要用到CA。
这个问题是由于HTTPS的安全认证问题导致无法从远程仓库下载依赖
Mavne运行时加上JVM参数:
执行maven命令需要加上参数-Dmaven.multiModuleProjectDirectory=$MAVEN_HOME -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
JDK的问题,用OracleJDK的就没这个问题,openJDK就出现这个SSL问题: https://blog.csdn.net/weixin_39556853/article/details/111674264



