Gradle 格雷德尔不能';在根项目上找不到方法,但我';我正在使用子项目
我有一个简单的Gradle 格雷德尔不能';在根项目上找不到方法,但我';我正在使用子项目,gradle,multi-module,Gradle,Multi Module,我有一个简单的build.gradle subprojects { test {} } project(':module1') { apply plugin: 'java' } Gradle抱怨在根项目上找不到方法test()。但是为什么它要在根项目中找到它呢?我听说子项目不包括根项目。如果我把println name放在子项目中,我在输出中也看不到根项目 您只为一个子项目应用java插件,这样其他子项目就不会有可用的测试闭包 您可以尝试在给定子项目上显式应用插件,如下所示:
build.gradle
subprojects {
test {}
}
project(':module1') {
apply plugin: 'java'
}
Gradle抱怨在根项目上找不到方法test()
。但是为什么它要在根项目中找到它呢?我听说子项目不包括根项目。如果我把println name
放在子项目中,我在输出中也看不到根项目
@高赌注是正确的。但假设您只有一个子项目(模块1),这只是一个时间问题。您首先需要应用java插件,然后才能配置该插件的任务。使用构建文件并更改您将获得的顺序:
project(':module1') {
apply plugin: 'java'
}
subprojects {
test {}
}
只要只有一个子项目,这就行了
您得到的错误消息是gradle将测试{}解释为传递空闭包的函数调用,并且正在根项目中查找此测试函数的定义。由于该函数未在此处添加(由java插件添加),因此您会收到此错误消息。@highpigs是正确的。但假设您只有一个子项目(模块1),这只是一个时间问题。您首先需要应用java插件,然后才能配置该插件的任务。使用构建文件并更改您将获得的顺序:
project(':module1') {
apply plugin: 'java'
}
subprojects {
test {}
}
只要只有一个子项目,这就行了
您得到的错误消息是gradle将测试{}解释为传递空闭包的函数调用,并且正在根项目中查找此测试函数的定义。由于该函数未在此处添加(由java插件添加),因此您会收到此错误消息。这很有帮助,谢谢!是错误消息让我困惑,我希望“在module1项目上找不到方法test()”,而不是“在根项目上”。这很有帮助,谢谢!这个错误消息让我很困惑,我希望“在module1项目上找不到方法test()”,而不是“在根项目上”。