Gradle 依赖设置困惑

标签 gradle dependency-management

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

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-commonfoo-entrypoint取决于 foo-servicesfoo-services取决于 foo-modelsadapter-common取决于 backend-common & db-conn
现在我有一个单独的项目api我需要的地方foo-adapter作为依赖。我找到了this问答似乎是同样的情况,但是当我尝试它时,我得到了关于如何没有找到其他项目( adapter-commondb-conn 等)的错误。

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

有什么方法可以在不声明整个 backend 的情况下使其正常工作我的项目 api设置文件?

最佳答案

如果您的 foo-adapter 项目使用来自其他项目的某些类,则不能在没有其他项目的情况下添加它。没关系,它是一个 jar 或只是未编译的东西。你也需要其他人。将一个项目依赖于另一个项目是一种非常糟糕的方法。最好只使用接口(interface)并将它们放入单独的项目中。因此,您的项目可以独立编译,您只需要一个组合所有这些东西的配置项目。

关于Gradle 依赖设置困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31655359/

相关文章:

android - 从 Google Play 下载应用程序后首次启动时崩溃(ExceptionInInitializerError)

gradle - 在 gradle 任务中动态解决依赖关系

php - Symfony 如何用 Git 和 Composer 管理 Component 的子包?

Grails 插件没有检测到它使用的另一个插件的依赖关系

branch - 有没有办法配置 Ivy 以从分支获取依赖项,而无需编辑每个相关依赖项?

javascript - 创建一个依赖于其他库的 javascript 库

android - 找不到support-annotations.jar

java - log4j gradle配置-无法找到实现错误

android - Gradle 构建运行无限时间

objective-c - 依赖项中公共(public) header 的 Xcode 搜索路径