You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins构建脚本中Bower安装Angular依赖包失败求助

解决Jenkins中Bower安装Angular依赖时Git HTTP请求失败问题

我之前帮不少开发者处理过类似的Jenkins+Bower依赖安装报错,你的问题根源很明确:GitHub已经停用了dumb-http这种老旧的Git传输方式,而Jenkins服务器上的Git客户端版本过低,还在使用这种被淘汰的协议,所以执行git ls-remote等命令时会触发HTTP请求失败,出现退出码128的报错。下面给你几个可行的解决方案:

方案一:升级Jenkins服务器上的Git客户端

这是最直接的根治方法,因为GitHub现在只支持smart-http传输,新版本Git默认使用该协议:

  • 先检查当前Git版本:在Jenkins构建脚本中或服务器终端执行 git --version,如果版本低于2.10.x(大概这个版本后默认启用smart-http),就需要升级
  • 根据服务器系统进行升级:
    • Ubuntu/Debian系统:执行 sudo apt-get update && sudo apt-get install git
    • CentOS/RHEL系统:执行 sudo yum update git
    • Windows系统:下载最新Git安装包手动更新
  • 升级完成后重启Jenkins服务,确保Jenkins能识别到新的Git版本

方案二:将Bower依赖地址改为SSH协议(适用于无法升级Git的场景)

如果暂时没法升级Git,可以把依赖的HTTPS地址换成SSH格式,绕开HTTP传输限制:

  • 打开项目中的bower.json文件,把报错的依赖地址修改为SSH格式:
    • 比如将 https://github.com/angular-ui/ui-utils.git 改为 git@github.com:angular-ui/ui-utils.git
    • 同样处理angular-card-input对应的Git地址
  • 确保Jenkins服务器的SSH公钥已经添加到你的GitHub账号的SSH密钥列表中,这样拉取代码时无需密码验证
  • 重新执行Bower安装命令 bower install

方案三:配置Git强制使用smart-http协议

如果升级Git后仍有问题,可以手动配置Git使用HTTP/1.1协议(smart-http基于此):

  • 在Jenkins构建脚本的Bower命令前添加Git配置:git config --global http.version HTTP/1.1
  • 或者在项目根目录创建/修改.bowerrc文件,添加Git传输配置:
    {
      "git": {
        "httpVersion": "HTTP/1.1"
      }
    }
    

验证修复效果

完成上述操作后,先在Jenkins服务器终端手动执行 git ls-remote --tags --heads https://github.com/angular-ui/ui-utils.git,确认能正常返回结果;再触发Jenkins构建,检查Bower安装依赖的步骤是否正常完成。

内容的提问来源于stack exchange,提问作者JonyD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:33:13