如何在Gradle GraalVM插件中配置代理编译Spring Boot 3 Spring Native
企业代理环境下Spring Native构建代理配置问题
环境信息
- Spring Boot 3
- Gradle 7.6 + Oracle JDK 17.0.6
- GraalVM CE Java17 22.3.1
org.graalvm.buildtools.native插件版本0.9.18
已配置内容(gradle.properties)
systemProp.http.proxyHost=**** systemProp.http.proxyPort=**** systemProp.https.proxyHost=**** systemProp.https.proxyPort=**** systemProp.javax.net.ssl.trustStoreType=Windows-ROOT systemProp.javax.net.ssl.trustStore=C:\\Windows\\win.ini org.gradle.jvmargs=-Djavax.net.ssl.trustStoreType=WINDOWS-ROOT -Djavax.net.ssl.trustStore=C:\\Windows\\win.ini -Dhttp.proxyHost=**** -Dhttp.proxyPort=**** -Dhttps.proxyHost=**** -Dhttps.proxyPort=****
报错信息
从https://www.graalvm.org/component-catalog/v2/graal-updater-component-catalog-java17.properties下载组件目录失败:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException: 无法找到请求目标的有效证书路径。
解决方案:build.gradle中graalvmNative块的代理配置
Gradle系统属性无法直接传递给GraalVM的组件更新器(gu)进程,需要在build.gradle的graalvmNative块中,为nativeCompile任务单独配置代理和SSL信任参数:
graalvmNative { binaries { main { // 代理配置 buildArgs.add("-Dhttp.proxyHost=****") buildArgs.add("-Dhttp.proxyPort=****") buildArgs.add("-Dhttps.proxyHost=****") buildArgs.add("-Dhttps.proxyPort=****") // SSL信任存储配置 buildArgs.add("-Djavax.net.ssl.trustStoreType=WINDOWS-ROOT") buildArgs.add("-Djavax.net.ssl.trustStore=C:\\Windows\\win.ini") } } }
额外说明
- 若企业代理需要账号密码认证,需追加以下参数:
buildArgs.add("-Dhttp.proxyUser=****") buildArgs.add("-Dhttp.proxyPassword=****") buildArgs.add("-Dhttps.proxyUser=****") buildArgs.add("-Dhttps.proxyPassword=****") - 确认
C:\\Windows\\win.ini为有效信任存储路径,部分企业环境需替换为内部CA证书文件路径。
内容的提问来源于stack exchange,提问作者Herisson-88
相关产品推荐
相关产品推荐

