我需要为某些子项目声明特定的资源,我正在按照以下方式进行操作
setInterval
但是,在任何子项目中,可以找到资源的路径都是相同的。我的问题是-在这种特殊情况下,最小化代码重复的最简单的方式是什么?
基本上我想拥有类似的东西 相关子项目中的explicit_some_resources()。
,然后使每个应用程序都可以看到此资源。
答案 0 :(得分:3)
您可以将文件组放入.bzl
文件中的宏中,然后在相关子项目中加载并运行该宏。
类似:
workspace/resources.bzl
:
def expose_some_resources():
native.filegroup(
name = "some_resources",
visibility = ["//:app"],
srcs = native.glob([
"src/my/resources/**/*.resources",
]),
)
workspace/subproject/BUILD
:
load("//:resources.bzl", "expose_some_resources")
expose_some_resources()
您还可以考虑向宏添加一些错误检查,例如使用native.existing_rule检查每个软件包仅对该宏调用一次,或检查glob返回1个或多个文件。