java Gradle子项目任务未获得pickedup
我有一个Java项目的多模块设置,结构如下
mainApp
|--> core-module
| |--> src
| |--> build.gradle
| |--> gradle.properties
|
|--> lib-module
| |--> src
| |--> build.gradle
| |--> gradle.properties
|--> lib-another-module
| |--> src
| |--> build.gradle
| |--> gradle.properties
|--> settings.gradle
|--> build.gradle
在我提到的
subprojects {
test.dependsOn "CreateMessageKeys"
//test.dependsOn ":CreateMessageKeys"
//test.dependsOn ("CreateMessageKeys")
//test.dependsOn (":CreateMessageKeys") none of this working....
}
task CreateMessageKeys(type: CreateMessageKeysTask) {
destDir = "bundle-common/src/";
outputClass = "common.messages.MessageKeys";
}
我的core-module/build.gradle
有一个测试目标
test {
useTestNG() {
useDefaultListeners = true
suites 'test/testng.xml'
}
}
但得到的错误如下。。我错过了什么
Caused by: groovy.lang.MissingMethodException: No signature of method: java.lang.String.dependsOn() is applicable for argument types: (String) values: [CreateMessageKeys]
Possible solutions: respondsTo(java.lang.String)
编辑
subprojects {
test.dependsOn(rootProject.tasks['CreateMessageKeys'])
}
task CreateMessageKeys(type: CreateMessageKeysTask) {
destDir = "bundle-common/src/";
outputClass = "common.messages.MessageKeys";
}
它会生成以下错误:
* What went wrong:
A problem occurred evaluating root project 'myApp'.
> Task with name 'CreateMessageKeys' not found in root project 'mainApp'.
# 1 楼答案
任务定义看起来不正确,请参见defining tasks
应该是这样的:
或者
与这个问题无关:
在您的第二个示例中,在计算任务时,任务
CreateMessageKeys
可能还不存在。一种可能的解决方法是:或者简单地把任务定义放在这个块上面就可以解决这个问题