使用Windows的Bazel内部外壳问题

时间:2019-03-20 15:57:23

标签: bazel

我正在尝试将具有Visual Studio和Maven项目的大型项目迁移到bazel。我需要访问已加密的内部Maven服务器。要获得访问权限,我需要加载maven_jar skylark扩展,因为默认的impl不支持加密(获取错误401)。使用扩展程序会导致很多麻烦,例如:

ERROR: BUILD:4:1: no such package '@org_bouncycastle_bcpkix_jdk15on//jar': Traceback (most recent call last):
        File ".../external/bazel_tools/tools/build_defs/repo/maven_rules.bzl", line 280
                _maven_artifact_impl(ctx, "jar", _maven_jar_build_file_te...)
        File ".../external/bazel_tools/tools/build_defs/repo/maven_rules.bzl", line 248, in _maven_artifact_impl
                fail(("%s: Failed to create dirs in e...))
org_bouncycastle_bcpkix_jdk15on: Failed to create dirs in execution root.

主要问题似乎是需要在BAZEL_SH环境变量中提供给bazel的外壳:

  • 我正在Windows下工作
  • 我正在使用bazel 0.23.2
  • bazel似乎直接使用“ bash”而不是env变量提供的命令运行bash命令。
  • 我在Windows中安装了ubuntu shell。 bazel使用了来自ubuntu的所有内容,尤其是在使用maven时(settings.xml是使用ubuntu〜/ .m2而非Windows用户使用的)
  • 在卸载ubuntu并确保cmd中的bash以“找不到命令”结尾之后,我还删除了BAZEL_SH env var,并且bazel在上面抛出了消息
  • 再次设置BAZEL_SH变量后,它失败,并显示相同的错误消息

我假设bazel从某处获得了重击或忽略了env变量。我的问题是: 1.如何设置正确的外壳? 2.使用当前版本时是否需要BAZEL_SH?

对我来说,bazel网站上有关设置的文档已过时。

欢呼

1 个答案:

答案 0 :(得分:0)

请考虑使用rules_jvm_external来管理您的Maven依赖项。它使用HTTP基本身份验证支持Windows和私有存储库。

  

对我来说,bazel网站上有关设置的文档已过时。

Bazel团队已意识到这一点,并将很快更新我们的文档。