我有3个单独的Gradle项目 - x 取决于 y ,具体取决于 z 。
X / settings.gradle
include ':y'
project(':y').projectDir = new File('../y')
X /的build.gradle
apply plugin: 'java'
Y / settings.gradle
include ':z'
project(':z').projectDir = new File('../z')
Y /的build.gradle
apply plugin: 'java'
dependencies {
compile project(':z')
}
当我在 x 目录中运行gradlew build
时,出现错误
* Where:
Build file 'C:\Temp\idea\y\build.gradle' line: 4
* What went wrong:
A problem occurred evaluating project ':y'.
Project with path ':z' could not be found in project ':y'.
但在 y 目录中运行gradlew build
成功。
如何配置 x 和 y 以避免 y 的依赖关系影响 x ?
答案 0 :(得分:0)
这不是多项目构建在Gradle中的工作方式。
简而言之,您不能拥有多个settings.gradle
,只能在父项目的根目录中使用一个。{/ p>
在该设置文件中,您将定义不同的模块:
include ':x', ':y', ':z'
请注意,上述内容假定3个项目位于名为x
,y
和Z
的文件夹中,作为settings.gradle
文件的兄弟。
Gradle包装器也应该在该根级别定义,而不是其他地方。
如果不更改每个项目中的build.gradle
文件,在该根文件夹中调用./gradlew build
应该会产生您期望的内容。
有关详细信息,请查看Gradle documentation on multi project builds。