bazel支持proxy代理

司马彦
2023-12-01

目前bazel编译工具还不能在使用proxy的网络环境下下载url依赖包,不知是proxy下载功能未开发完整还是什么原因,只要在proxy网络环境下,无法下载外部包依赖。

从bazel在github的issue上看,好像当前还不支持proxy下载功能。

 

从bazel本身的代码看,在运行bazel时更是将http_proxy的环境变量给去掉了:

src/main/cpp/blaze.cc :

static void PrepareEnvironmentForJvm() {
  if (!blaze::GetEnv("http_proxy").empty()) {
    PrintWarning("ignoring http_proxy in environment.");
    blaze::UnsetEnv("http_proxy");
  }

 

由于本人也是工作在proxy网络之下(痛苦),因此自己简易做了一个代码适配,可以支持proxy的bazel,github地址:

https://github.com/ixuexi/bazel

 

下载代码后,在原有bazel基础上(建议使用bazel 0.5.3以上版本,没有的下载二进制包安装一个即可),重新编译bazel(方法见readme)

然后替换现有bazel二进制文件即可。

 

原理:新增使用wget下载依赖的功能,当默认http下载方式出错后,切换到wget下载,wget可以支持proxy,

具体proxy代理设置见项目readme文件。

 

感谢  西电小楠  提供最新方法,可以解决Proxy问题:

参考issue https://github.com/bazelbuild/bazel/issues/3993,配置HTTP(S)_PROXY来代替http(s)_proxy。

 类似资料: