Jenkins构建Angular前端时Bower安装依赖遇HTTP请求失败求助
解决Jenkins中Bower安装依赖时的Git HTTP请求失败问题
先给你理清楚问题根源:你遇到的两个HTTP请求失败错误,本质都是因为Jenkins服务器上的Git客户端版本太老——GitHub早就停止支持dumb-http这种旧的Git传输协议了,而老版本Git默认会用这个协议,所以才会触发这些报错。下面是具体的解决步骤:
1. 优先升级Jenkins服务器上的Git客户端
这是最直接有效的解决方案,错误提示已经明确要求升级Git:
- Linux服务器:用系统包管理器升级,比如Debian/Ubuntu系执行:
CentOS/RHEL系执行:sudo apt-get update && sudo apt-get install gitsudo yum update git - Windows服务器:直接下载最新稳定版Git安装包,覆盖原有安装即可。
- 升级完成后,务必检查Jenkins全局配置:进入Jenkins后台 → 系统管理 → 全局工具配置,找到Git配置项,确保路径指向刚升级的Git二进制文件(比如Windows下的
git.exe路径),最后重启Jenkins让配置生效。
2. 手动验证Git是否正常工作
升级后先在Jenkins服务器的命令行里手动测试,确保Git能正常访问GitHub:
git ls-remote --tags --heads https://github.com/angular-ui/ui-utils.git
如果这个命令能成功返回结果,说明Git的问题已经解决,再运行bower install angular-card-input或者你的Bower构建脚本,应该就能正常执行了。
3. 备选方案:处理Bower依赖的协议或缓存
如果升级Git后还是有问题,可以试试这两个小技巧:
- 清理Bower缓存:旧缓存可能残留错误的依赖信息,执行以下命令清除后重新安装:
bower cache clean bower install - 切换依赖的Git协议:如果你的环境下HTTPS访问GitHub有问题(比如代理、证书),可以把bower.json里的HTTPS依赖改成SSH协议。比如把
"angular-ui-utils": "bower"改成:
注意这需要给Jenkins服务器配置好GitHub的SSH密钥,确保能无密码拉取代码。"angular-ui-utils": "git@github.com:angular-ui/ui-utils.git#bower"
4. 代理环境下的额外配置
如果Jenkins在代理网络中,还要确保Git和Bower都正确配置了代理:
- Git配置代理:
git config --global http.proxy http://你的代理地址:端口 git config --global https.proxy http://你的代理地址:端口 - Bower配置代理:在项目根目录的
.bowerrc文件中添加(如果没有就新建一个):{ "proxy": "http://你的代理地址:端口", "https-proxy": "http://你的代理地址:端口" }
内容的提问来源于stack exchange,提问作者JonyD
相关产品推荐
相关产品推荐

