LibGDX新建项目build.gradle无法加载 Gradle依赖解析报错
问题根因
报错核心为PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target,和提示里提到的TLS版本无关联。该问题是工作设备的企业安全代理/上网行为管控工具做HTTPS流量中间人替换导致:这类工具会替换访问公网站点的SSL证书,而运行Gradle的JDK内置信任证书库没有导入企业的根证书,SSL握手阶段直接拒绝连接,最终导致依赖拉取失败。
可行修复方案
按操作成本从低到高排序:
- 校验Gradle实际使用的JDK
很多场景下IDE配置的JDK版本和Gradle daemon实际调用的JDK不一致,先在项目根目录执行.\gradlew --version,查看输出的JVM路径是否为你本机安装的JDK 17.0.3路径。如果路径不匹配,在项目根目录编辑/新建gradle.properties文件,添加配置指定JDK路径:
注意Windows环境下路径用正斜杠或双反斜杠,配置完成后重新执行org.gradle.java.home=C:/path/to/your/jdk17.0.3.\gradlew build验证。 - 导入企业根证书到JDK信任库
向公司IT部门索要上网代理/安全管控的根证书文件(.crt格式),通过JDK自带的keytool工具将证书导入信任库:- 以管理员权限打开终端,切换到JDK安装目录下的bin文件夹
- 执行导入命令:
keytool -importcert -alias company-proxy-root -file /path/to/your/company-root.crt -keystore ../lib/security/cacerts -storepass changeit - 命令执行后弹出信任确认提示时输入
yes回车,提示导入成功后重启终端再执行构建即可。
*JDK内置cacerts信任库的默认密码为changeit,如果自行修改过密码请替换为实际密码。
- 替换为企业内部Maven镜像源
向IT部门索要公司内部Maven私服地址,编辑项目根目录的build.gradle文件,将repositories块中的公网仓库配置替换为内部私服地址,走内网拉取依赖不会触发公网HTTPS证书校验,可直接绕开该问题。 - 临时绕过方案(不推荐长期使用)
仅用于临时验证构建时,可在gradle.properties中添加配置跳过SSL证书校验:
该配置会关闭SSL证书校验,存在中间人攻击风险,禁止在正式项目、生产环境中长期使用。org.gradle.jvmargs=-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
内容的提问来源于stack exchange,提问作者Ethan Kharitonov
相关产品推荐
相关产品推荐

