Gradle 依赖设置混乱

Gradle dependency settings confusion

将以下项目结构视为 Gradle 构建:

backend
|- adapters
   |- adapter-common
   |- bar-adapter
      |- bar-entrypoint
      |- bar-models
      \- bar-services
   \- foo-adapter
      |- foo-entrypoint
      |- foo-models
      \- foo-services
|- backend-common
|- db-conn
|- backend-entrypoint
|- build.gradle
\- settings.gradle

依赖结构如下:
foo-adapter 取决于 foo-entrypointadapter-common
foo-entrypoint 取决于 foo-services
foo-services 取决于 foo-models
adapter-common 取决于 backend-common & db-conn

现在我有一个单独的项目 api,我需要 foo-adapter 作为依赖项。我发现 this Q&A 这似乎是相同的情况但是当我尝试它时我得到关于如何 none 其他项目(adapter-commondb-conn 等)的错误找到了。

我是不是对 Gradle 要求太多了,告诉它只导入 foo-adapter 然后期望它自己引入并解决所有依赖关系?

有什么方法可以使它工作而无需在我的 api 设置文件中声明整个 backend 项目?

如果您的 foo-adapter 项目使用了其他项目中的一些 类,则如果没有其他项目,则无法添加。不管它是一个罐子还是只是未编译的东西。你也需要其他人。将一个项目依赖于另一个项目是一种非常糟糕的方法。最好只使用接口并将它们放入单独的项目中。因此,您的项目可以独立编译,您只需要一个组合所有这些东西的配置项目。