我有这个简单的build.gradle
subprojects {
test {}
}
project(':module1') {
apply plugin: 'java'
}
并且Gradle抱怨它无法在根项目中找到方法test()
。但为什么它试图在根项目中找到它?我读了here子项目不包含根项目。如果我将println name
放到子项目中,我也不会在输出中看到根项目。
答案 0 :(得分:1)
您只是为一个子项目应用java插件,因此其他子项目没有可用的测试闭包。
您可以尝试在给定的子项目中明确应用插件,如下所示:
project(':module1'){project - > project.apply插件:'java' }
答案 1 :(得分:1)
@highstakes是对的。但假设您只有一个子项目( module1 ),那只是一个时间问题。首先需要应用java插件才能配置此插件的任务。带你构建文件并改变你得到的顺序:
project(':module1') {
apply plugin: 'java'
}
subprojects {
test {}
}
只要您只有一个子项目,这将有效。
你得到的错误信息是gradle将 test {} 解释为传递空闭包的函数调用,并在根项目中寻找这个测试函数的定义。由于该地方没有添加(通过java插件)功能,因此会收到此错误消息。