IPv6网络环境下Gradle构建Spring Boot应用失败求助
解决IPv6网络虚拟机中Gradle依赖解析失败问题
1. 配置Gradle全局JVM参数
在项目根目录新建/编辑gradle.properties,添加以下配置,强制Gradle使用IPv6并禁用IPv4栈优先:
systemProp.java.net.preferIPv6Addresses=true systemProp.java.net.preferIPv4Stack=false org.gradle.jvmargs=-Djava.net.preferIPv6Addresses=true -Djava.net.preferIPv4Stack=false
之前你尝试的-Djava.net.preferIPv4Stack=true会强制走IPv4,和IPv6网络环境冲突,必须改成false。
2. 确保仓库支持IPv6解析
先检查仓库域名的IPv6解析是否正常:
nslookup repo.maven.apache.org
如果返回IPv6地址,说明解析正常;如果没有,可手动配置仓库的IPv6地址(比如Maven Central的IPv6地址[2600:1409:8000:200::2]:443),修改build.gradle中的仓库配置:
repositories { maven { url "https://[2600:1409:8000:200::2]/maven2/" } }
3. 清除Gradle缓存
缓存中可能存在损坏的依赖记录,执行命令清除:
rm -rf ~/.gradle/caches
之后重新运行构建命令:
sh gradlew -Djava.net.preferIPv6Addresses=true clean bootWar -Pstage
4. 检查虚拟机IPv6网络配置
- 确认虚拟机的IPv6地址为全局可路由地址(不是fe80开头的本地链路地址)
- 验证IPv6连通性:
ping6 repo.maven.apache.org,确保能正常连通
为什么wget能下载但Gradle不行?
wget等命令行工具会自动优先使用IPv6(如果系统支持),但Gradle的守护进程(Daemon)可能缓存了之前的IPv4相关配置,或者其内置的网络客户端需要明确指定IPv6优先参数才能生效。
内容的提问来源于stack exchange,提问作者Spartan
相关产品推荐
相关产品推荐

