单个Gradle项目出现PKIX Validation Exception,其余项目正常求助
单个Gradle项目出现PKIX证书路径构建失败,其他同仓库项目正常
问题详情
在IntelliJ中加载Gradle项目时抛出以下异常:
Could not resolve com.netflix.nebula:gradle-lint-plugin:10.4.2. > Could not get resource '<<jar that is at the specified path>>'. > Could not HEAD '<<jar that is at the specified path>>'. > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
异常特殊点:
- 同时打开的另外三个IntelliJ项目,同样引用该远程仓库的Jar包,均能正常构建运行
- 该项目之前一直正常使用,上次成功构建15分钟后,仅它突然出现此问题
排查与解决步骤
1. 清理该项目的Gradle缓存
Gradle局部缓存损坏可能导致证书校验异常,仅清理当前项目相关缓存:
- 打开IntelliJ的
File→Invalidate Caches...,勾选Clear file system cache and local history,点击Invalidate and Restart - 或手动删除项目根目录下的
.gradle文件夹,以及用户目录下.gradle/caches/modules-2/files-2.1/com.netflix.nebula/gradle-lint-plugin/10.4.2的缓存目录
2. 检查项目专属Gradle配置
部分项目可能有独立的JVM或代理设置,与全局配置不一致:
- 打开
File→Settings→Build, Execution, Deployment→Build Tools→Gradle,确认该项目的Gradle JVM与其他正常项目一致 - 查看项目根目录下的
gradle.properties文件,是否存在单独的systemProp.http.proxyHost、systemProp.https.proxyHost等代理配置,而其他项目无此设置
3. 验证证书信任问题(临时排查)
临时让Gradle跳过证书验证,确认问题是否源于证书信任:
在项目build.gradle中添加:
repositories { maven { url "你的仓库地址" allowInsecureProtocol = true // 仅用于临时测试,不建议长期使用 } }
若构建恢复正常,说明该项目使用的JVM信任库缺少对应仓库的证书,需将证书导入该JVM的cacerts文件:
- 找到项目JVM路径,例如
/Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home/jre/lib/security/cacerts - 执行keytool命令导入证书:
keytool -import -alias 仓库别名 -keystore cacerts -file 证书文件路径
默认密钥库密码为changeit
4. 检查IntelliJ项目隔离设置
IntelliJ可能对单个项目启用了特殊网络隔离:
- 打开
File→Settings→Appearance & Behavior→System Settings→HTTP Proxy,确认是否勾选Use proxy configuration from another project,或该项目有独立的代理配置
内容的提问来源于stack exchange,提问作者Patrick Aquilone
相关产品推荐
相关产品推荐

