### [Java、Maven和Gradle怎么使用天行IP?JVM代理、settings.xml与证书排查](https://www.jiyueip.com/article/8375) **Published:** 2026-07-23T03:15:35 **Author:** 斑斓助理 **Excerpt:** Java、Maven和Gradle使用天行IP时,应区分JVM系统属性、Maven settings.xml、Gradle属性和守护进程环境,并处理认证、NO_PROXY与CA证书。 浏览器和curl都能通过天行IP访问仓库,Maven下载依赖却报超时,Gradle又提示证书错误,通常不是同一个问题。Java程序可能读取JVM系统属性,Maven主要使用settings.xml里的proxy,Gradle还会读取gradle.properties和长期运行的Daemon环境。配置层级不同,凭据、绕过列表和证书存储也不同。 ## 先确认节点协议与订单 通过极跃圈[天行IP当前入口详情页](https://www.jiyueip.com/link/5629)注册时,在对应推荐人、邀请码或优惠码字段使用**blsj**。下单后确认实际节点是HTTP还是SOCKS5、认证方式、端口、并发和地址保持。Maven常用HTTP代理配置,不能把SOCKS5参数按HTTP格式硬填。 ## JVM系统属性适合一次性验证 ``` java -Dhttp.proxyHost=HOST -Dhttp.proxyPort=PORT -Dhttps.proxyHost=HOST -Dhttps.proxyPort=PORT -Dhttp.nonProxyHosts="localhost|127.*|*.internal.example" -jar app.jar ``` Java的`nonProxyHosts`常使用竖线分隔和自身通配规则,与NO\_PROXY语法不同。JVM属性是否被某个HTTP客户端采用,还取决于库实现;Apache HttpClient、OkHttp或应用框架可能使用独立配置。 不建议把用户名密码直接放到进程参数。命令行可能被进程列表、监控和Shell历史读取,认证应优先使用工具或企业密钥机制。 ## Maven settings.xml中的代理 ``` tianxing-http true http HOST PORT USER PASS localhost|127.*|*.internal.example ``` 用户settings通常位于`~/.m2/settings.xml`,CI可能使用单独文件或`-s`参数。文件中含凭据时限制权限,不提交仓库。Maven密码加密机制能降低明文暴露,但仍需保护主密码和配置文件,并按官方文档实施。 ## Gradle配置与Daemon缓存 Gradle常在用户或项目`gradle.properties`中使用`systemProp.http.proxyHost`、端口及HTTPS对应属性。用户级文件适合本机私密配置,项目文件不应含真实凭据。修改后若Gradle Daemon长期存在,可能需要停止旧Daemon再启动,以避免进程继续使用旧环境。 ``` systemProp.http.proxyHost=HOST systemProp.http.proxyPort=PORT systemProp.https.proxyHost=HOST systemProp.https.proxyPort=PORT systemProp.http.nonProxyHosts=localhost|127.*|*.internal.example ``` 属性名称和认证能力以当前Gradle/JVM版本为准。不要在构建日志中输出全部System properties。 ## 为什么会出现407 407是代理要求或拒绝认证。检查用户名密码、IP白名单、密码特殊字符、协议和代理是否允许CONNECT到仓库443端口。Maven或Gradle未发送预期认证头时,还要看JVM代理认证方案与服务端支持。不要把仓库账号当代理账号。 ## 仓库401和403属于另一层 代理握手成功后,Maven Central、私服或制品库仍可返回401/403。此时检查仓库凭据、Token、镜像配置和权限,不要反复修改天行节点。日志中若先出现`407 Proxy Authentication Required`,则尚未到达仓库认证。 ## TLS证书错误从哪个信任库查 Java通常使用JVM truststore,不一定读取操作系统浏览器证书。检查系统时间、JDK版本、仓库完整证书链和企业合法TLS检查。若企业有内部CA,应由管理员导入正确JDK信任库并记录变更。不要设置跳过证书验证,也不要从错误网页下载陌生证书导入。 ## SOCKS5与Java的边界 JVM有SOCKS相关系统属性,但认证、DNS、协议版本和具体HTTP库支持需实测。Maven/Gradle官方代理配置通常围绕HTTP代理。若业务明确需要SOCKS5,应查工具和JDK当前文档,或选用兼容HTTP节点,不引入来源不明的本地转发器。 ## 构建缓存为何掩盖问题 依赖已在本地缓存时,即使代理失效,构建也可能成功。验证时应使用一个允许访问的新依赖或受控仓库请求,不能为测试随意清空整个生产缓存。离线模式成功只证明缓存完整,不证明代理路径正常。 ## CI里怎样保护代理凭据 - 使用受保护的Secret变量或临时settings文件; - 限制Fork或外部贡献构建获取密钥; - 日志掩码代理URL、仓库Token和Authorization; - 构建结束删除临时文件并检查缓存; - 按项目或环境分配最小权限凭据。 ## 分层排查顺序 1. 用curl验证节点、认证和仓库域名; 2. 记录JDK、Maven或Gradle版本; 3. 检查实际生效的settings或properties; 4. 区分407与仓库401/403; 5. 检查JVM信任库和系统时间; 6. 停止旧Daemon后再次测试; 7. 从仓库服务端核对来源与请求ID。 ## 结论 Java、Maven和Gradle使用天行IP,需要分别管理JVM属性、Maven代理和Gradle配置,同时关注Daemon、认证与JVM证书库。407属于代理层,仓库401/403属于目标层;证书校验不能靠关闭解决。**blsj**用于当前注册和订单核验,构建是否可靠仍要由版本锁定与真实依赖请求验证。 **Tags:** HTTP代理, 代理认证, 天行IP, 天行IP教程, 服务器运维, 网络故障排查, 隐私与合规 **Categories:** 行业洞察 ---