Gradle 中的模型项目依赖关系:将依赖项目添加到另一个项目

Posted

技术标签:

【中文标题】Gradle 中的模型项目依赖关系:将依赖项目添加到另一个项目【英文标题】:Model project dependencies in Gradle: Add a dependent project to another project 【发布时间】:2013-03-21 16:23:37 【问题描述】:

我面临以下问题。我在同一层次结构上有两个 Gradle 项目(ProjectA 和 ProjectB),没有任何根项目。由于 ProjectA 依赖于 ProjectB,因此我尝试将其建模如下:

ProjectA 的 settings.gradle

includeFlat 'ProjectB'

ProjectA 的 build.gradle

dependencies 
    compile project(':ProjectB')

但是,在 ProjectA 上执行“gradle build”时出现以下错误:

* What went wrong:
A problem occurred evaluating root project 'ProjectA'.
> Could not resolve all dependencies for configuration ':compile'.
> Module version group:, module:ProjectA, version:0.0.1-SNAPSHOT, configuration:compile declares a dependency on configuration 'default' which is not declared in the module descriptor for group:ProjectA, module:ProjectB, version:unspecified

我是否必须在 ProjectB 中定义某种默认配置?

【问题讨论】:

【参考方案1】:

我是否在 ProjectB 中定义了某种默认配置?

要么,要么应用base 插件。许多其他插件(javagroovyscala 等)会自动应用base 插件,因此您不必这样做。

【讨论】:

我已经将插件“Java”应用于 ProjectA 和 ProjectB。添加'base'也会产生相同的错误。看来我在这里遗漏了一些基本的东西。 :) 您从哪个目录执行构建?必须从包含settings.gradle 的目录执行具有非分层目录布局的多项目构建,除非该目录称为master,或者-p 用于指向该目录。 我正在从 ProjectA 的目录中执行“gradle build”。我现在通过引入另一个父目录(实际上什么都不做)并定义它们的“gradle.build”和“settings.build”(包括两个子项目)来运行它。那行得通。但是,如果我不必添加此层次结构,那就更好了。 没有已知的好方法可以为非分层构建实现settings.gradle 的自动发现。为每个构建调用搜索所有同级目录在性能方面是令人望而却步的。

以上是关于Gradle 中的模型项目依赖关系:将依赖项目添加到另一个项目的主要内容,如果未能解决你的问题,请参考以下文章

如何管理 Gradle 模块之间的依赖关系?

如何将 git 存储库中的 jar 文件添加为 gradle 中的依赖项?

Gradle + Buildship - 在 JAR 和项目之间切换依赖关系

Gradle教程第一章:1.5依赖关系

android中的gradle依赖错误

6.2、Android Studio 添加编译依赖