Bazel 依赖项的依赖项必须在根工作区中声明?

Bazel 依赖项的依赖项必须在根工作区中声明?,bazel,Bazel,我写了一个例子: git clone git@github.com:rynz/test-app.git bazel test //... 它将出错,抱怨com_google_absl无法解决 编辑工作区并取消注释com_google_absl依赖项,现在它将成功构建和测试 rynz_应用程序仅依赖于rynz_协议,但rynz_协议也依赖于com_google_absl。为什么我必须在rynz_应用程序工作区中重新声明com_google_absl,而它已经在rynz_协议工作区中声明了 亲切问

我写了一个例子:

git clone git@github.com:rynz/test-app.git
bazel test //...
它将出错,抱怨com_google_absl无法解决

编辑工作区并取消注释com_google_absl依赖项,现在它将成功构建和测试

rynz_应用程序仅依赖于rynz_协议,但rynz_协议也依赖于com_google_absl。为什么我必须在rynz_应用程序工作区中重新声明com_google_absl,而它已经在rynz_协议工作区中声明了

亲切问候,


Ryan

来自文档:

Bazel只读取工作区文件中列出的依赖项。如果你的 项目A依赖于另一个项目B,该项目B列出了对 如果在其工作区文件中有第三个项目C,则必须同时添加两个项目B 和C到项目的工作区文件。这一要求可能会膨胀 工作区文件大小,但希望限制 一个库包含1.0版的C,另一个库包含2.0版的C