如何向Gradle中的任务添加扩展?
创建Gradle插件时,您可以使用自己的扩展对象扩展DSL,但从文档中我看到,DefaultTask也实现了ExtensionAware接口 所以我想问:如何向Gradle中的任务添加扩展?,gradle,Gradle,创建Gradle插件时,您可以使用自己的扩展对象扩展DSL,但从文档中我看到,DefaultTask也实现了ExtensionAware接口 所以我想问: 如何向任务添加扩展 在什么情况下我必须使用它 您可以使用ext命名空间向任务添加额外属性。它通常用于用新的属性或方法丰富Gradle的域模型(如任务)。假设您想向任务添加一个额外属性myTask: task myTask { ext.myProp = 'hello world' doLast { print
您可以使用
ext
命名空间向任务添加额外属性。它通常用于用新的属性或方法丰富Gradle的域模型(如任务)。假设您想向任务添加一个额外属性myTask
:
task myTask {
ext.myProp = 'hello world'
doLast {
println myProp
}
}
assert myTask.myProp == 'hello world'
myTask.myProp = 'new value'
assert myTask.myProp == 'new value'
您可以在这里看到,您可以在任务的上下文中直接访问和修改此属性。那么额外的属性是任务的扩展吗?我理解正确吗?当我创建自定义任务时,是否可以使用ExtensionContainer.create向其添加额外属性?