Gradle 构建中 Maven 仓库连接超时的解决方案

发布时间 - 2026-01-26 00:00:00    点击率:

本文详解 jenkins/openshift 环境下 gradle 构建因无法访问 maven 中央仓库(如 repo.maven.apache.org)导致 `connect timed out` 错误的根本原因与系统级代理配置方法,重点指导如何通过 `gradle.properties` 正确设置 https 代理以恢复依赖解析。

该错误并非

Gradle 或构建脚本本身的问题,而是运行环境(Jenkins Agent / Openshift Pod)缺乏对外网 Maven 仓库的网络访问能力——典型表现为 Connect to repo.maven.apache.org:443 [...] failed: connect timed out。本地构建成功而 CI 环境失败,恰恰印证了这是网络策略差异所致:企业内网通常强制走代理访问外网,而 Jenkins 节点或容器未配置相应代理参数,导致 Gradle 的 HTTP 客户端直连超时。

根本解决方式是为 Gradle 运行时显式声明系统级代理配置,推荐在项目级 gradle.properties 文件中设置(该文件会被 Gradle 自动加载,且可安全纳入版本控制,敏感值建议通过 CI 变量注入):

# gradle.properties
systemProp.https.proxyHost=your-proxy.company.com
systemProp.https.proxyPort=8080
systemProp.http.proxyHost=your-proxy.company.com
systemProp.http.proxyPort=8080
systemProp.https.nonProxyHosts="localhost|127.0.0.1|*.company.com"
systemProp.http.nonProxyHosts="localhost|127.0.0.1|*.company.com"

⚠️ 注意事项:

  • proxyHost 和 proxyPort 必须替换为企业实际的代理地址与端口(常见为 http://proxy.corp:8080 或 https://proxy.corp:8443);
  • 若代理需认证,请额外添加:
    systemProp.https.proxyUser=your-username
    systemProp.https.proxyPassword=your-password

    (注意:密码明文存在安全风险,生产环境应优先使用 Jenkins Credentials Binding 或环境变量动态注入);

  • nonProxyHosts 使用 | 分隔,支持通配符 *,务必包含 localhost、127.0.0.1 及内网域名,避免代理环路;
  • 不要删除 http.* 配置项——尽管 Maven 仓库使用 HTTPS,但 Gradle 内部部分逻辑仍会触发 HTTP 请求;
  • 若 Jenkins Pipeline 中通过 sh 'gradle build' 执行,请确保 gradle.properties 位于工作目录或 $GRADLE_USER_HOME 下;也可在 Pipeline 中直接传参:
    sh "gradle build -Dhttps.proxyHost=... -Dhttps.proxyPort=..."

此外,不建议在 build.gradle 中硬编码代理(如 System.setProperty()),因其仅影响 JVM 启动后阶段,无法覆盖 Gradle 初始化期间的仓库连接;也不推荐修改全局 $GRADLE_USER_HOME/gradle.properties,不利于多项目隔离。

总结:超时本质是网络可达性问题。通过标准化 gradle.properties 代理配置,既符合 Gradle 官方推荐实践,又能确保 Jenkins/Openshift 等受限环境稳定拉取依赖,是企业级 CI 流水线中可复用、可审计的基础设施方案。


# word  # apache  # 编码  # 端口  # ai  # proxy  # 环境变量  # jenkins  # red  # maven  # jvm  # openshift  # gradle  # http  # https  # 内网  # 这是  # 也不  # 运行环境  # 可在  # 可达  # 又能  # 多项  # 表现为  # 因其 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 智能起名网站制作软件有哪些,制作logo的软件?  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  Python进程池调度策略_任务分发说明【指导】  详解Huffman编码算法之Java实现  深圳网站制作的公司有哪些,dido官方网站?  如何在景安服务器上快速搭建个人网站?  如何在云指建站中生成FTP站点?  C#如何调用原生C++ COM对象详解  如何在万网自助建站平台快速创建网站?  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  JavaScript如何实现类型判断_typeof和instanceof有什么区别  如何快速搭建安全的FTP站点?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  浅谈javascript alert和confirm的美化  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  Laravel怎么为数据库表字段添加索引以优化查询  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  南京网站制作费用,南京远驱官方网站?  linux写shell需要注意的问题(必看)  如何在腾讯云服务器快速搭建个人网站?  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  如何在香港免费服务器上快速搭建网站?  中国移动官方网站首页入口 中国移动官网网页登录  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  Laravel如何处理异常和错误?(Handler示例)  如何在自有机房高效搭建专业网站?  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  lovemo网页版地址 lovemo官网手机登录  油猴 教程,油猴搜脚本为什么会网页无法显示?  如何在宝塔面板中创建新站点?  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  Laravel中的withCount方法怎么高效统计关联模型数量  Laravel如何与Inertia.js和Vue/React构建现代单页应用  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  如何在阿里云完成域名注册与建站?  黑客入侵网站服务器的常见手法有哪些?  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  简历没回改:利用AI润色让你的文字更专业