我想重新使用在多个摇篮任务,类似于在建议常见逻辑这个答案 ,但我有与不可见的额外项目属性的麻烦。
归结,这里的问题。 说我有一个根摇篮构建脚本, build.gradle
,设置一个额外的项目性质,
project.ext.myProp = 'myValue'
我在定义一个子项目settings.gradle
,
include 'subproject'
和子项目定义并使用引用该项目的额外属性自定义任务,
class CustomTask extends DefaultTask {
CustomTask() {
doFirst {
println project.ext.myProp
}
}
}
task custom(type: CustomTask) {
println 'custom task'
}
执行这给了我这样的:
FAILURE: Build failed with an exception.
...
* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating project ':subproject'.
...
Caused by: org.gradle.api.tasks.TaskInstantiationException: Could not create task of type 'CustomTask'.
...
Caused by: groovy.lang.MissingPropertyException: cannot get property 'myProp' on extra properties extension as it does not exist
...
BUILD FAILED
请注意,这似乎如果工作:
- 自定义任务在根项目中定义旁边的额外的属性
- 如果你使用的动态属性,而不是额外的属性,但这些已被弃用