假设我想使用 destinationDir
property来自Javadoc
gradle 插件。我有文档,其中仅介绍了以下属性:
File destinationDir
如何使用这些信息?
javadoc << {
FileTree docFilesTree = fileTree(dir: 'resources/doc-files')
File destinationDir
copy {
from docFilesTree
to destinationDir
}
}
我收到错误:
No signature of method: org.gradle.api.internal.file.copy.CopySpecWrapper_Decorated.to() is applicable for argument types: (null) values: [null]
显然意味着声明与 groovy 中的初始化也不一样:)
但是如何使用这个属性呢?
更新
好的,如果我这样做:
javadoc << {
FileTree docFilesTree = fileTree(dir: 'resources/doc-files')
copy {
from docFilesTree
into destinationDir
}
}
它不咒骂,但也不复制任何内容。
更新2
实际上已经回答了明确的问题:要引用插件属性,应该只引用它的变量名称。但为了精确起见,我想知道是否存在任何条件?也许可以引用destinationDir
仅在内部 javadoc << {}
?或者可以在build.gradle
中的任何地方引用它。添加插件后文件?
最佳答案
May be it is possible to refer destinationDir only inside javadoc << {}? Or it is possible to refer it inside any place in build.gradle file once plugin is added?
正如我在评论中所写的destinationDir
是在任务上定义的,而不是在插件上定义的,因此您可以在任何地方引用它:
javadoc.destinationDir
它适用于 << {}
自行动{}
是一个闭包。如果闭包在其内部没有找到属性,它会在 delegate
中搜索它。然后owner
。在这种情况下,委托(delegate)被设置为任务本身。这实际上是绝妙的东西。
关于gradle - 如何在编写目标时使用/引用 gradle 插件属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36057959/