【发布时间】:2014-05-30 19:30:47
【问题描述】:
我的插件中有以下代码:
@Override
void apply(Project project) {
project.extensions.create(EXTENSION,TestExtension)
project.task("task1") << {
println "Task 1"
println(project.mmm.test)
def extension = project.extensions.findByName(EXTENSION)
println(extension.test)
}
project.task("task2",type: TestTask) {
println "Task 2 "
def extension = project.extensions.findByName(EXTENSION)
// conventionMapping.test = {extension.test}
// println(project.extensions.findByName(EXTENSION).test)
// test = "test"
}
}
在任务 1 extension.test 中返回正确的值。但是在 task2 extension.test 中总是返回 null。我做错了什么?有没有更好的方法来传递一些扩展值作为任务的输入?我在 Mac 上使用 gradle 1.12 和 jdk 1.8。最好的问候
编辑:正确的版本:
project.task("task2", type: TestTask) {
project.afterEvaluate {
def extension = project.extensions.findByName(EXTENSION)
println(project.extensions.findByName(EXTENSION).test)
test = project.extensions.findByName(EXTENSION).test
}
}
【问题讨论】: