【发布时间】:2018-09-27 15:25:25
【问题描述】:
我正在尝试将一个功能添加到一个多模块 Gradle Java 项目中(如果您好奇,它是 spring-integration)。我已经将该项目分叉到我的本地计算机上,并正在创建一个单独的 Gradle 项目,该项目引用这个本地克隆的项目进行开发。
在我的新项目中,settings.gradle 文件如下所示:
include ":springint"
project(":springint").projectDir = file("/users/me/git/spring-integration")
rootProject.name = 'sprinttest'
我从我的 build.gradle 中引用它:
dependencies {
compile project(":springint")
...
问题是它似乎只考虑了 /git/spring-integration 目录的 build.gradle 而不是它的 settings.gradle。这是一个问题,因为当我运行我的本地项目时,通过它的 settings.gradle 文件引用了相当多的子模块。我得到的错误是:
- 出了什么问题: 评估项目“:springint”时出现问题。 在项目“:springint”中找不到路径为“spring-integration-test-support”的项目。
如果您查看 spring-integration 的 settings.gradle,您会发现它动态包含所有这些子项目:
rootProject.name = 'spring-integration'
rootDir.eachDir { dir ->
if (dir.name.startsWith('spring-integration-')) {
include ":${dir.name}"
}
}
我认为 gradle 会在构建时自动合并此依赖项的 settings.gradle,但事实并非如此,因为这就是为什么找不到 spring-integrationtest-support 的原因。我是否遗漏了什么,或者我应该从这个项目的设置中“重新创建”相同的逻辑到我自己的设置中?
【问题讨论】:
标签: java gradle multi-module