栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

IDEA打包Maven项目失败-InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

IDEA打包Maven项目失败-InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

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参数:

-Dmaven.multiModuleProjectDirectory=$MAVEN_HOME -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true

执行maven命令需要加上参数

-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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/287062.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号