Gradle从多模块子项目添加子模块作为另一个子项目的依赖项

时间:2017-04-16 00:39:34

标签: gradle dependency-management multiple-projects

我有一个复杂而有趣的情况:

root
|___ p1
|___ p2  // depends on p3/sp1
|___ p3
|____|___sp1
|____|___sp2

我希望能够解释这种情况。

现在我如何添加sp1作为p2的依赖? 注意所有项目都是基于gradle的。

到目前为止,在我的根setting.gradle中,我有

rootProject.name = root
include 'p1'
include 'p2'
include 'p3'

p2 build.gradle中,我有:

dependencies {
    compile project (':p3:sp1')
}

但是这样做仍然无法解决p2中的依赖关系;关于缺少定义,我仍然会遇到错误。

我该如何解决这个问题?

暂且不说,我将如何解决sp1可能具有的其他依赖关系。就像它依赖于sp2一样,我是否需要以某种方式声明它,即使它已经在p3中解决了?

2 个答案:

答案 0 :(得分:4)

假设项目sp1sp2是项目subprojects的{​​{1}},如果您愿意:

p3

然后您需要将dependencies { compile project(':p3:sp1') } 更改为:

settings.gradle

答案 1 :(得分:1)

只是为那些可能正在寻找的人添加答案,在您的settings.gradle中,您将拥有

include ':p1',':p2',':p3:sp1',':p3:sp2'

如果sp1依赖于sp2

然后将对sp1的gradle的依赖性添加为

dependency {
   compile project(":p3:sp2")
}