我是 gradle 新手,我正在尝试使用 gradle 通过 Gradle IDE 插件在 Eclipse 中构建项目。(Gradle 版本 2.3,Gradle IDE 版本 3.6.3)
我有一个平面布局的三个 Java 项目的示例,具有依赖项 A->B->C。除了直接依赖之外,项目 A、B 和 C 对其他项目一无所知。我需要构建每个项目。
我成功地通过Project B中的settings.gradle文件使B依赖于C以包含Project C,并且B和C构建成功。
include ":C"
project(':C').projectDir = new File(settingsDir, '../C')
然后我尝试使用与 B->C 相同的方式添加依赖项 A -> B(通过添加 settings.gradle 文件)。但是这次项目A的构建失败了,错误:在/B下找不到C。项目B中的settings.gradle文件未读取。
我不想将C的依赖信息添加到A来构建A,因为A不应该知道C。我搜索并无法得到答案。有没有办法解决gradle中的这种传递性项目依赖?非常感谢。
最佳答案
我通过学习gradle DSL文档和一些groovy自己解决了这个问题。我在 settings.gradle 文件中添加以下代码以应用子项目的 settings.gradle(如果存在)。
def applySettings = {
def file = new File(project(it).projectDir, "settings.gradle");
if (file.exists()) {
apply "from" : file.toURI()
}
}
applySettings ':B'
关于java - 如何在gradle中构建具有传递项目依赖关系的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28794552/