我有一些项目依赖于其他项目。我还有一个项目,该项目依赖于两个项目,每个项目都依赖于同一项目。像这样:
-Project A
* Project 1
** Project C
* Project 2
** Project C
工作空间的结构是这样的:
-ProjectA
-ProjectC
-Project1
-Project2
所有项目都处于同一级别。
所以在我的项目A的settings.gradle中,我有:
include ':Project1',':Project1:ProjectC',[...]
project(':Project1') = new File('../Project1')
project(':Project2') = new File('../Project2')
project(':Project1:ProjectC') = new File('../ProjectC')
project(':Project2:ProjectC') = new File('../ProjectC')
在build.gradle中,我这样做:
dependencies{ compile project('Project1'),project('Project2')
问题在于它没有正确地添加到类路径中。我认为由于Project1和Project2都依赖于ProjectC,因此以某种方式将其覆盖。有任何想法吗?
谢谢。
编辑
这是依赖关系树:
Root project 'ProjectA'
+--- Project ':ProjectB'
| \--- Project ':ProjectB:Project1'
| +--- Project ':ProjectB:Project1:Project2'
| \--- Project ':ProjectB:Project1:Project3'
\--- Project ':ProjectC'
\--- Project ':ProjectC:Project1'
+--- Project ':ProjectC:Project1:Project2'
\--- Project ':ProjectC:Project1:Project3'
最佳答案
对于如下所示的工作空间:
rootFolder
|
|- build.gradle
|- settings.gradle
|
|- ProjectA
| |-build.gradle
|
|- Project1
| |-build.gradle
|
|- Project2
| |-build.gradle
|
|- ProjectC
|-build.gradle
您的settings.gradle应该看起来像这样(与子项目的依赖关系无关):
include ':ProjectA',':Project1',':Project2',':ProjectC',
您只是在告诉根项目有4个子项目及其位置。而已。
现在,依赖关系在每个子项目的build.gradle文件中进行处理。对于如下所示的依赖关系:
ProjectA
|-Project1
| |-ProjectC
|
|-Project2
|-ProjectC
ProjectA的build.gradle:
dependencies{
compile project(':Project1')
compile project(':Project2')
}
Project1的build.gradle:
dependencies{
compile project(':ProjectC')
}
Project2的build.gradle:
dependencies{
compile project(':ProjectC')
}
关于gradle - Gradle Multiproject不会将项目添加到类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37055619/