假设我有一个非常小的项目
WORKSPACE
在项目根目录中定义的一个包
touch
创建名为
a
,如下所示:
genrule(
name = "target",
cmd = "touch $@",
outs = ["a"],
)
如果我现在跑
bazel build //:target
该包将被“构建”,并且
一
文件将在下面提供
bazel-genfiles
。
假设我现在改变
BUILD
要将输出写入其他文件,请执行以下操作:
genrule(
name = "target",
cmd = "touch $@",
outs = ["b"],
)
构建相同的目标将导致文件
b
在以下条件下可用
火箭筒
。
一
但仍然会存在,即使此时无法从构建定义的上下文中“访问”。
有没有办法让bazel执行某种“垃圾收集”并删除以前生成的文件(可能还有其他内容),这些文件根据当前生成定义不再可访问,而不删除整个目录?这个
bazel clean
指挥部似乎采取了后一种行为。
There seems to be a feature in the works
,但显然它不能按需执行,而是在达到某个阈值时自动执行。