Gradle项目依赖项

问题描述 投票:0回答:1

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

gradle dependencies build-dependencies
1个回答
0
投票

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

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

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

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

请注意,上面隐含地假设3个项目位于名为xyZ的文件夹中,作为settings.gradle文件的兄弟。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.