如何在gradle中构建具有可传递项目依赖性的项目

时间:2015-03-01 14:18:34

标签: java eclipse build gradle

我是gradle的新手,我正在尝试使用gradle在Eclipse中使用Gradle IDE插件构建项目。(Gradle版本2.3,Gradle IDE版本3.6.3)
我有一个平面布局的三个Java项目的例子,依赖A-> B-> C.除了直接依赖之外,项目A,B和C对其他项目一无所知。我需要建立每个项目 我成功地将B依赖于C,使用项目B中的settings.gradle文件包含项目C,并且B和C的构建成功。

include ":C"
project(':C').projectDir = new File(settingsDir, '../C')

然后我尝试添加依赖关系A - > B与我尝试使用B-> C(通过添加settings.gradle文件)的方式相同。但这次项目A的构建失败并出现错误:无法在/ B下找到C.项目B中的settings.gradle文件未被读取 我不想将C的依赖关系信息添加到A来构建A,因为A不应该知道C.我搜索并且无法得到答案。有没有办法在gradle中解决这种传递项目依赖?非常感谢。

1 个答案:

答案 0 :(得分:1)

我已经通过学习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'