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
插件。许多其他插件(java
、groovy
、scala
等)会自动应用base
插件,因此您不必这样做。
【讨论】:
我已经将插件“Java”应用于 ProjectA 和 ProjectB。添加'base'也会产生相同的错误。看来我在这里遗漏了一些基本的东西。 :) 您从哪个目录执行构建?必须从包含settings.gradle
的目录执行具有非分层目录布局的多项目构建,除非该目录称为master
,或者-p
用于指向该目录。
我正在从 ProjectA 的目录中执行“gradle build”。我现在通过引入另一个父目录(实际上什么都不做)并定义它们的“gradle.build”和“settings.build”(包括两个子项目)来运行它。那行得通。但是,如果我不必添加此层次结构,那就更好了。
没有已知的好方法可以为非分层构建实现settings.gradle
的自动发现。为每个构建调用搜索所有同级目录在性能方面是令人望而却步的。以上是关于Gradle 中的模型项目依赖关系:将依赖项目添加到另一个项目的主要内容,如果未能解决你的问题,请参考以下文章
如何将 git 存储库中的 jar 文件添加为 gradle 中的依赖项?