我是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中解决这种传递项目依赖?非常感谢。
答案 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'