Jenkins流水线构建Spring Boot项目连接repo.maven.apache.org:443失败如何解决
排查解决步骤
- 首先验证Maven代理配置实际生效状态
在流水线Maven构建步骤前添加执行命令mvn help:effective-settings -X,查看输出日志中的节点配置,确认你配置的代理地址、端口、认证信息是否正确加载。注意如果存在多个层级的settings.xml(Jenkins全局settings、任务指定的自定义settings、agent节点本地settings),优先级高的配置会覆盖你预期的代理参数,可直接在Maven执行命令中强制指定settings文件路径: mvn clean install -U -X -s /path/to/your/settings.xml。
如果你的企业代理需要账号认证,必须在执行参数中补充-DproxyUser=代理账号 -DproxyPassword=代理密码,无认证信息的代理请求会被大部分企业代理直接拒绝。 - 排查Jenkins执行上下文的环境差异
你之前执行的curl连通性测试,需要确保是写在和Maven构建同一条流水线steps块中,而非手动登录Jenkins agent节点执行。手动登录节点的环境变量和Jenkins任务运行时的环境变量存在差异,需在同一执行上下文下验证代理可用性。
同时检查Jenkins全局配置、对应agent节点的环境变量配置,是否存在http_proxy/https_proxy/no_proxy等系统级代理配置和你传入的代理参数冲突,导致Maven优先读取了无效的代理配置。 - 调整仓库拉取路径规避公网代理问题
优先检查你使用的settings.xml中是否配置了企业内部Maven镜像源,如果存在内部镜像源可直接跳过公网代理,确认内部镜像是否存在org.springframework.boot:spring-boot-starter-parent:pom:2.4.2版本的包即可。
如果没有内部镜像源,可临时在pom.xml的节点中添加国内公共镜像源测试,确认是否是公网代理访问maven.apache.org的链路问题。 - 验证Maven版本兼容性
Spring Boot 2.4.x版本要求使用的Maven版本不低于3.6,确认Jenkins任务调用的Maven版本符合要求,低版本Maven会偶发父POM解析异常的问题。
补充说明:你之前修改relativePath标签的操作不会解决当前问题,当前pom中<relativePath/>的配置本身就是正确的,代表不从本地路径查找父POM,直接从远程仓库拉取,无需调整。
内容的提问来源于stack exchange,提问作者izengod
相关产品推荐
相关产品推荐

