Bazel 问题:`filegroup` 到 `declare_directory`
Bazel Question: `filegroup` to `declare_directory`
我有一个关于如何将 filegroup
变成 declare_directory
的一般性问题。
所以我能想到的是,
filegroup
-> pkg_tar
-> untar_to_dir
(将 tar 球打入 declare_directory
的规则)。
它会起作用,我已经证明了。但是,我想知道是否还有其他更优雅的方法来避免 tar 和取消 tar 文件组?
我尝试过一个想法,但很复杂,就是将它们逐个文件复制到 declare_directory
文件中。但棘手的一点是,它无法优雅地处理在新目录中保持相同目录结构的问题。 (就像我必须在 cp
之前 mkdir
很多子目录)。
来自另一个线程
You can just use `cp` instead of `tar`, like this rule does https://github.com/aspect-build/bazel-lib/blob/main/docs/copy_to_directory.md
it takes sources which can include filegroup, and outputs a TreeArtifact (ctx.actions_declare_directory)
实际上我写了一个 func files_to_dir 并做了同样的事情。
我有一个关于如何将 filegroup
变成 declare_directory
的一般性问题。
所以我能想到的是,
filegroup
-> pkg_tar
-> untar_to_dir
(将 tar 球打入 declare_directory
的规则)。
它会起作用,我已经证明了。但是,我想知道是否还有其他更优雅的方法来避免 tar 和取消 tar 文件组?
我尝试过一个想法,但很复杂,就是将它们逐个文件复制到 declare_directory
文件中。但棘手的一点是,它无法优雅地处理在新目录中保持相同目录结构的问题。 (就像我必须在 cp
之前 mkdir
很多子目录)。
来自另一个线程
You can just use `cp` instead of `tar`, like this rule does https://github.com/aspect-build/bazel-lib/blob/main/docs/copy_to_directory.md
it takes sources which can include filegroup, and outputs a TreeArtifact (ctx.actions_declare_directory)
实际上我写了一个 func files_to_dir 并做了同样的事情。