【问题标题】:Bazel internal shell issue using windows使用 Windows 的 Bazel 内部外壳问题
【发布时间】:2019-03-20 15:57:22
【问题描述】:

我正在尝试将具有 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 的 shell:

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

我假设 bazel 从某个地方获得了 bash 或忽略了 env 变量。我的问题是: 1.如何设置正确的shell? 2. 使用当前版本是否需要BAZEL_SH?

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

干杯

【问题讨论】:

    标签: bazel


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-05-10
      • 1970-01-01
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      • 1970-01-01
      相关资源
      最近更新 更多