假设我希望使用Javadoc
gradle插件中的destinationDir
property。我有文档,它只是说有关属性:
File destinationDir
如何使用此信息?
javadoc << {
FileTree docFilesTree = fileTree(dir: 'resources/doc-files')
File destinationDir
copy {
from docFilesTree
to destinationDir
}
}
我收到错误:
没有方法签名: org.gradle.api.internal.file.copy.CopySpecWrapper_Decorated.to()是 适用于参数类型:( null)值:[null]
显然意味着声明与groovy中的初始化不同:)
但是如何使用这个属性呢?
更新
好的,如果我这样做:
javadoc << {
FileTree docFilesTree = fileTree(dir: 'resources/doc-files')
copy {
from docFilesTree
into destinationDir
}
}
它不会发誓但也不会复制任何东西。
更新2
实际上回答了明确的问题:要引用插件属性,应该只引用它的变量名。但是为了精确,我想知道是否存在任何条件?可以仅在destinationDir
内引用javadoc << {}
吗?或者,一旦添加了插件,就可以在build.gradle
文件中的任何位置引用它?
答案 0 :(得分:2)
可能只能在javadoc&lt;&lt;里面引用destinationDir {}?或者可以在build.gradle中的任何位置引用它 文件一旦添加插件?
正如我在评论中所写destinationDir
是在不在插件上的任务上定义的,所以你可以在任何地方引用它:
javadoc.destinationDir
它适用于<< {}
,因为操作{}
是一个闭包。如果闭包在自身内部找不到属性,则会在delegate
然后owner
中搜索它。在这种情况下,委托被设置为任务本身。这实际上很时髦。