【发布时间】:2021-01-01 11:07:52
【问题描述】:
基本上我想要的只是cp -r src/ dist/,但由于某种原因,我根本无法让它工作。
目前我正在尝试:
filegroup(
name = "src_files",
srcs = glob([
"src/**",
]),
)
filegroup(
name = "dist_files",
srcs = glob([
"dist/**"
]),
)
genrule(
name = "copy",
srcs = ["//packages/variables:src_files"],
outs = ["//packages/variables:dist_files"],
cmd = "cp -R $(locations //packages/variables:src_files) $(locations //packages/variables:dist_files)"
)
我已经浏览了至少 4 页的 google 和文档,但似乎除非我创建一个 genrule 并在规则中手动指定所有 100 个文件,否则它不会起作用?
【问题讨论】:
-
您打算通过副本实现什么目标?是否有特定的下游规则要提供这些作为输入?通常,您不需要单独复制规则中的文件;如果这是为了某种输出,那么您可能需要查看
rules_pkg并生成一个 tar 球,然后在另一个步骤中将其解压缩到正确的目录位置。 -
@JamesSharpe 这正是我所需要的!谢谢,用解决方案更新帖子
标签: bazel bazel-rules skylark bazel-rules-nodejs