如何查找多个bazel目标中包含的所有源文件?

如何查找多个bazel目标中包含的所有源文件?,bazel,Bazel,在我的代码库中,在多个目标中包含相同的源文件通常是错误的(cc\u binary,cc\u library,等等)。我想检测一下这个 我能行 bazel query labels(srcs, //target:name) 获取单个目标的源列表。通过对每个目标执行此操作并检测多个目标中的源文件,这足以确定哪些源是多个目标的一部分。但我仍然需要一个查询来获得每个目标的列表 如果我可以查询一个源文件属于哪个目标,并查看它是否是多个目标的源,那么会更容易/更干净。可能吗 另外,我有很多源文件,查询的最

在我的代码库中,在多个目标中包含相同的源文件通常是错误的(
cc\u binary
cc\u library
,等等)。我想检测一下这个

我能行

bazel query labels(srcs, //target:name)
获取单个目标的源列表。通过对每个目标执行此操作并检测多个目标中的源文件,这足以确定哪些源是多个目标的一部分。但我仍然需要一个查询来获得每个目标的列表

如果我可以查询一个源文件属于哪个目标,并查看它是否是多个目标的源,那么会更容易/更干净。可能吗


另外,我有很多源文件,查询的最佳性也是一个问题。

一些澄清问题:

  • 您希望以什么频率检测这种情况?(即,您是希望将此作为测试运行,还是希望手动验证此测试?)
  • 如果两个不相关的目标A和B都依赖于文件foo,即使A不依赖于B,B也不依赖于A,这是否被视为错误
  • 将src可见性限制在同一软件包中定义的目标是否不够?例如,考虑确保<代码> Foo/Bar /Src。C.<代码>对于在<代码> Foo/Bar /Bug 中定义的目标是可见的,然后确保<代码> Fo/Bar /Bug 只包含一个代码> CcLabase< /Cord> Trave.
考虑使用获取给定目标的所有可传递源文件的列表

如果您真正喜欢使用
bazel query
,您可以通过调用

bazel query //...