Gradle守护进程是否会持久化cacerts证书?修改后为何需重启生效?
Gradle构建无法解析Artifactory制品的问题解决记录
场景说明
我维护的Java代码库采用Gradle+Groovy实现构建自动化,构建脚本里的pluginManagement声明中嵌套了仓库配置。一开始构建时,始终无法解析Artifactory仓库里的制品。
排查与解决过程
- 首先锁定SSL证书方向:检查JDK 17的
jdk-17/Home/lib/security/cacerts证书库,确认缺少Artifactory地址对应的SSL证书 - 手动将新证书添加到cacerts后,重新执行
./gradlew build,构建依然失败 - 尝试停止Gradle守护进程:执行命令
./gradlew --stop,之后再运行./gradlew build,构建成功完成
原因推断
Gradle守护进程启动时会一次性加载JVM的安全配置(包括cacerts证书库),运行过程中不会主动检测并重新加载该配置的变更。所以更新cacerts后,已在运行的守护进程依然使用旧的证书配置,无法正常连接Artifactory;只有停止并重启守护进程,新添加的证书才会被加载,构建才能正常解析仓库制品。
内容的提问来源于stack exchange,提问作者Shawn Armstrong
相关产品推荐
相关产品推荐

