【发布时间】: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