Java 理解梯度依赖
我的结构如下: 项目A->取决于项目B 项目B->取决于项目C 编译projectB一切正常: ProjectB/build.gradle:Java 理解梯度依赖,java,gradle,build.gradle,Java,Gradle,Build.gradle,我的结构如下: 项目A->取决于项目B 项目B->取决于项目C 编译projectB一切正常: ProjectB/build.gradle: dependencies { compile project(':ProjectC') } dependencies { compile project(':ProjectB') } dependencies { compile (project (':ProjectB')) { exclude module: ':ProjectC
dependencies {
compile project(':ProjectC')
}
dependencies {
compile project(':ProjectB')
}
dependencies {
compile (project (':ProjectB')) {
exclude module: ':ProjectC'
}
}
ProjectB/settings.gradle:
include ':ProjectC'
project(':ProjectC').projectDir = new File(settingsDir, '../ProjectC')
include ':ProjectB'
project(':ProjectB').projectDir = new File(settingsDir, '../ProjectB')
然而,在编译ProjectA时,它表示找不到ProjectC
ProjectA/build.gradle:
dependencies {
compile project(':ProjectC')
}
dependencies {
compile project(':ProjectB')
}
dependencies {
compile (project (':ProjectB')) {
exclude module: ':ProjectC'
}
}
ProjectA/settings.gradle:
include ':ProjectC'
project(':ProjectC').projectDir = new File(settingsDir, '../ProjectC')
include ':ProjectB'
project(':ProjectB').projectDir = new File(settingsDir, '../ProjectB')
这将显示以下错误:
其中:
生成文件ProjectB\Build.gradle
出了什么问题:
评估项目“:ProjectB”时出现问题
在项目:ProjectB中找不到路径为:ProjectC的项目
我只能将ProjectC包含在ProjectA中。但这不是我想要的
我也试着排除ProjectA,但没有成功
ProjectA/build.gradle:
dependencies {
compile project(':ProjectC')
}
dependencies {
compile project(':ProjectB')
}
dependencies {
compile (project (':ProjectB')) {
exclude module: ':ProjectC'
}
}
但显示出同样的错误
如何解决此问题?对于gradle,您应该只使用一个settings.gradle文件。看
另外,只需遵循gradle多项目文档。多项目构建是不可级联的。在多项目生成中,可以有一个settings.gradle文件,也可以没有,但不能有多个 除此之外,它并没有像预期的那样工作,如果您从不同的目录调用Gradle,它甚至会变得更加混乱。Gradle在名为master的目录中查找最接近的设置。如果未指定任何设置,则为Gradle。然后评估settings.gradle并检查工作目录所在的项目是否是该settings.gradle文件中定义的多项目生成的一部分。如果是,则在多项目构建的上下文中执行,如果不是,则作为独立构建执行 这意味着,如果您从ProjectA内部调用Gradle,您的构建可能与从ProjectB内部调用Gradle的构建完全不同,配置可能也不同 如果要将多个多项目生成组合到一个生成中,则应改用GradleBuild任务或复合生成。在这两种情况下,子构建都是完全独立的,并且本身可以是多项目构建。使用哪一个取决于具体的用例