问题标签 [bazel-rules]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bazel - 如何从 Bazel 规则中查询兄弟规则
我希望能够在 Bazel BUILD 文件中执行以下操作:
Wherealpha
和beta
是自定义规则。我希望beta
能够访问规则的color
属性,而无需添加标签属性。在 Bazel 查询中,我可以执行以下操作:alpha
bazel query 'kind(beta, siblings(kind(alpha, //...)))'
这给了我beta
并排的alpha
。我可以从beta
规则的实现功能中以某种方式实现相同的目标吗?
我已经看到这是用这样的标签完成的
但我觉得这有点冗长,特别是因为有兄弟查询支持。
bazel - 使用`bazel test ...`时如何选择要运行的测试
我有一个使用 bazel 作为构建和测试系统的仓库。这个 repo 有 python 和 golang。有两种类型的测试,单元测试和集成测试。我想在我们的 CI 中在两个单独的测试步骤中运行它们。添加新测试时,我想自动在 repo 中发现新测试。我们目前正在使用bazel test ...
. 但这无助于我拆分单元测试和集成测试。是否有任何规则或现有方法可以做到这一点?谢谢。
java - 如何在自定义测试运行器中将 Bazel 标签解析为其 jar,以便能够提取打包的单元测试?
使用 Bazel,我们有一个宏,我们从 BUILD 文件中调用它来调用我们的自定义测试运行器。此宏对 java_test 进行本地调用,类似于:
在我们的 BUILD 文件中,调用宏的目标类似于:
将 srcs 传递给宏中的 args,希望在 CustomTestRunner 中我可以访问所有单元测试文件,这对于 glob(["src/test/java/**/*.java"] 标识的那些文件是正确的)。
但是,在 ":sdk_gen_model_test" 和 ":sdk_gen_controller_test" 的情况下,这两个是指生成单元测试的目标,这些目标会打包到一个 jar 中。不幸的是,这两个标签字符串按原样传递给 CustomTestRunner,我很难弄清楚如何从它们中解析生成的 jar。
所以问题是,我怎样才能让 Bazel 将这两个目标生成的文件列表传递给 CustomTestRunner,或者至少有一些方法可以将这些标签解析为 jar,以便我可以在 CustomTestRunner 中提取文件?
git - Bazel genrule:如何获取工作区目录的绝对路径?
我想创建一个 bazel gen-rule 来创建一个包含当前 git 提交哈希的头文件:
到目前为止,我还没有测试过 linux 版本(cmd),但只在 windows(cmd_ps)上测试过,它可以工作,但问题是当 powershell 执行时,它不在工作区目录(这是我的 git root)中。我需要用什么替换what_comes_here
第一个 cd 到我的工作区的根目录?
bazel - git repo 中非 bazel 项目的 Bazel 规则
我们有一个使用 Bazel 构建的开源 Go 项目。我正在尝试集成另一个项目(https://github.com/cisco/go-hpke),但它是用“go build”构建的。集成它的最佳方法是什么?
我读了一些关于“new_go_repository”的东西,它应该会自动为新项目生成构建文件。但它已经被弃用了一段时间。
bazel - 如何在规则失败的情况下使 Bazel 构建失败?
我在我的应用程序中使用 NodeJS 中的 Bazel 规则。目的是简单地对一组文件进行 lint,如果 linting 失败,则构建失败。我目前遇到的是,尽管出现了 lint 错误,但构建还是成功的。
这是我BUILD
文件的一部分:
我首先加载提示库,然后为我想要 lint 的所有 HTML 文件定义一个文件组。之后,我将规则与它的数据和参数一起使用。
要运行构建,我通过 npm 脚本使用默认选项:bazel build //...
java - Bazel项目环境中如何在本地获取maven依赖的jar文件
我正在使用 Intellij 中的 Bazel 项目来获取 Maven 依赖项。我按照以下链接在 Bazel 中使用 maven 依赖项:
https://github.com/bazelbuild/rules_jvm_external/releases/tag/4.0
我在我的 Bazel 项目中使用来自 maven 的 Junit 依赖项,但 Junit 依赖类未加载到外部库列表中,因此我遇到了问题,并且无法使用 Junit 的依赖类编写代码。请看下面的项目截图:
但是当我使用以下命令构建项目时,一切正常且完美:
看下面的截图:
那么任何人都可以建议我在使用 Bazel 时如何在外部库列表中获取 JUnit 依赖项,类似于我们使用 Maven 时,我们在 Maven 项目中本地获取 Maven 依赖项列表中的所有依赖项?
bazel - Bazel/Gazelle 链接命令
我想简化我们的 bazel monorepo 的依赖更新过程,我们想按照在根目录中定义的顺序运行这些命令BUILD.bazel
(go 目录包含我们所有的 go 代码):
这些命令基本上会更新工作空间中的任何新依赖项,然后重建 go 代码。我猜这可以通过规则来实现,但我不知道如何让它工作。
bazel - 有没有一种简单的方法可以查看 Bazel“Make”变量扩展到什么?
是否有工具可以检查https://docs.bazel.build/versions/master/be/make-variables.html中的哪些变量实际上将扩展为?这可能有助于调试和理解这些变量。