我是 bazel 新手,并尝试在 MapIt 中自动更新数据库和代码。
我将 bazel 项目的根文件夹命名为 bazel_mapit,其中包含此外部依赖项的 WORKSPACE 文件和 BUILD 文件,如下所示。
世界空间:
new_git_repository(
name = "mapit_repo",
remote = "https://github.com/mysociety/mapit",
tag = "v2.0",
build_file = "mapit_repo.BUILD",
init_submodules = 1,
)
mapit_reop.BUILD:
package(default_visibility = ["//visibility:public"])
filegroup(
name = "mapit_files",
srcs = glob(
[
"**/*",
],
exclude = [
"**/LICENSE",
"**/*.zip",
],
),
)
现在我想在 MapIt 源代码中生成配置文件 conf/general.yml。现在的问题是,当我将以下代码添加到mapit_repo.BUILD文件时,我收到bazel找不到的错误
'@bazel_mapit//:general_yml.bzl'
mapit_repo.BUILD(扩展):
load("@bazel_mapit//:general_yml.bzl", "general_yml")
general_yml(
name = 'generate_general_yml',
bzl_mapit_db_user = 'foo',
)
filegroup (
name = 'mapit_general_yml',
srcs = ['conf/general.yml'],
data = ['conf/general.yml-example'],
)
如何在外部依赖项中生成配置文件?
更新:
这是正在工作的mapit_repo.BUILD文件的内容:
package(default_visibility = ["//visibility:public"])
filegroup(
name = "mapit_files",
srcs = glob(
[
"**/*",
],
exclude = [
"**/LICENSE",
"**/*.zip",
],
),
)
load("@//conf:general_yml.bzl", "general_yml")
general_yml(
name = 'generate_general_yml',
bzl_mapit_db_user = 'foo',
)
filegroup (
name = 'mapit_general_yml',
srcs = ['conf/general.yml'],
data = ['@//conf:general.yml.tmpl'],
)
最佳答案
我认为需要更改的是load()
mapit_repo.BUILD。该构建文件将从外部工作区中进行评估,因此要引用主工作区中的 bzl 文件,您可以使用 @//:general_yml.bzl
。 (即空工作区名称指的是主工作区)
关于python - 如何在外部 bazel 依赖项中生成配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48116640/