如何在编写目标时使用/引用 gradle 插件属性?

How to use / refer gradle plugin properties in writing goals?

假设我想使用 Javadoc gradle 插件中的 destinationDir property。我有文档,其中只是说 属性 是:

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

实际上回答了明确的问题:引用插件属性,应该只引用它的变量名。但是为了精确起见,我想知道是否存在任何条件?是否可以仅在 javadoc << {} 内引用 destinationDir?或者在添加插件后可以在 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 中搜索它。在这种情况下,委托被设置为任务本身。这实际上是 groovy 东西。