Azure DevOps配置自托管代理后Maven构建耗时过长且出现上传报错
代理配置完整性排查
- 你当前仅配置了
VSTS_HTTP_PROXY变量,覆盖范围不足,需要在runsvc.sh中补充全量代理配置,包含HTTP、HTTPS和不走代理的地址列表,示例如下:
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 # 代理基础配置 export VSTS_HTTP_PROXY=http://<代理地址>:<端口> export VSTS_HTTPS_PROXY=http://<代理地址>:<端口> export HTTP_PROXY=http://<代理地址>:<端口> export HTTPS_PROXY=http://<代理地址>:<端口> # 代理需认证时使用格式:http://<用户名>:<密码>@<代理地址>:<端口> # 配置不走代理的内网地址 export NO_PROXY=localhost,127.0.0.1,*.企业内网域名
- 补充Maven本身的代理配置,修改自托管代理机器上
~/.m2/settings.xml文件,新增代理节点:
<proxies> <proxy> <id>corp-proxy</id> <active>true</active> <protocol>http</protocol> <host>你的代理地址</host> <port>代理端口</port> <nonProxyHosts>localhost|127.0.0.1|*.企业内网域名</nonProxyHosts> </proxy> </proxies>
- 修改runsvc.sh配置后必须重启自托管代理服务,配置才会生效。
Blob上传失败问题排查
- 先在自托管代理机器本地执行
curl -v https://<你组织对应的Azure存储域名>.blob.core.windows.net,验证网络连通性,如果返回网络不可达,说明代理未放行Azure存储相关域名。 - 确认企业代理已放开
*.blob.core.windows.net、*.visualstudio.com等Azure DevOps依赖域名的HTTPS访问权限。 - 如果使用自签证书的代理,需要把代理根证书导入到自托管代理机器的系统信任证书库,同时导入到JDK的信任证书库,避免SSL校验失败。
Maven构建耗时过长排查
- 优先在
settings.xml中配置企业内部私有Maven镜像源,替换默认的中央仓库,减少跨网依赖下载耗时,示例配置:
<mirrors> <mirror> <id>internal-maven</id> <mirrorOf>*</mirrorOf> <url>企业内部Maven镜像源地址</url> </mirror> </mirrors>
- 在流水线的Maven任务参数中添加
-X开启Debug日志,定位耗时卡点是在依赖下载、单测执行还是其他环节,针对性优化。 - 如果卡点在单测执行阶段,检查单测逻辑是否存在未配置NO_PROXY的外网调用,避免无意义的代理等待。
配置验证步骤
- 所有配置修改完成后,先在自托管代理机器本地手动执行Maven构建命令,确认本地可以正常跑完构建且无网络报错。
- 重启自托管代理服务后重新触发流水线任务,观察日志排查问题是否解决。
内容的提问来源于stack exchange,提问作者Newbie
相关产品推荐
相关产品推荐

