我是bazel的新手并尝试自动化MapIt数据库和代码中的更新。
我为我的bazel项目 bazel_mapit 命名了根文件夹,其中有WORKSPACE文件和此外部依赖项的BUILD文件,如下所示。
WORSPACE:
<div id="total">0</div>
)
mapit_reop.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源中生成配置文件 conf / general.yml 。现在的问题是,当我将以下代码添加到mapit_repo.BUILD文件时,我收到了bazel无法找到的错误
&#39; @bazel_mapit //:general_yml.bzl&#39;
mapit_repo.BUILD(扩展名):
package(default_visibility = ["//visibility:public"])
filegroup(
name = "mapit_files",
srcs = glob(
[
"**/*",
],
exclude = [
"**/LICENSE",
"**/*.zip",
],
),
)
如何在外部依赖项中生成配置文件?
更新
这是工作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'],
)
答案 0 :(得分:2)
我认为需要改变的是load()
mapit_repo.BUILD。该构建文件将在外部工作区内进行评估,因此要引用主工作区中的bzl文件,可以使用@//:general_yml.bzl
。 (即,空工作空间名称指的是主工作空间)