public visibilityのBazelターゲットのリストを照会しようとしています。当社Bazel目標のいくつかは例えば、明示的に指定visibility
を持っている:Bazelワークスペースで公開されているすべてのターゲットを見つける方法
cc_library(
name = "xxx_util",
visibility = ["//visibility:public",],
...
)
そのBUILD
ファイルは、例えば、指定されたデフォルトのパブリック可視性を持っているように、ほとんどの目標は、暗黙的にパブリックありながら、
package(default_visibility = ["//visibility:public"])
私Bazelワークスペースが作成された後、私は、自動的に特定の場所に出力をコピーすることができるように、私は、そのようなすべてのターゲットのリストを必要とします。
私はBazelに新しいですし、クエリを把握することはできません...この例では
または単に:bazel query 'attr(可視性、可視性:public "、...)' –
**これは動作しますが、部分的にのみ**、明示的に指定されたvisibility属性を持つターゲット、例えば'visibility = [" // visibility:public "]、'。私の問題は、私たちの 'BUILD'ファイルの多くに、パッケージレベルの可視性が指定されていることです。このような 'BUILD'ファイルのすべてのターゲットが私のクエリに現れると期待しています...パッケージレベルの可視性がターゲットに伝播されていないように見えます(照会のために' 'package(default_visibility = [" visibility:public "])目的... – Curious
ああ、効果的な可視性が必要です!私はバゼルのクエリはあなたにそれを伝えることができるとは思わない。私は機能要求を提出しました:https://github.com/bazelbuild/bazel/issues/4388。残念ながら、今はバゼルのクエリに取り組んでいる人がいないので、これはおそらく待つ必要があります。 –