Gradle项目依赖项

时间:2017-12-21 18:32:09

标签: gradle dependencies build-dependencies

我有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

1 个答案:

答案 0 :(得分:0)

这不是多项目构建在Gradle中的工作方式。

简而言之,您不能拥有多个settings.gradle,只能在父项目的根目录中使用一个。{/ p>

在该设置文件中,您将定义不同的模块:

include ':x', ':y', ':z'

请注意,上述内容假定3个项目位于名为xyZ的文件夹中,作为settings.gradle文件的兄弟。

Gradle包装器也应该在该根级别定义,而不是其他地方。

如果不更改每个项目中的build.gradle文件,在该根文件夹中调用./gradlew build应该会产生您期望的内容。

有关详细信息,请查看Gradle documentation on multi project builds