如何创建org.gradle.api.file.Director的实例

如何创建org.gradle.api.file.Director的实例,gradle,groovy,directory,Gradle,Groovy,Directory,我想创建的实例。从Gradle文档中我看到,唯一的方法是使用project.getLayout().getProjectDirectory()创建第一个实例,然后在此实例上使用实例方法dir()为另一个目录创建实例 有没有办法直接创建目录类的实例(比如使用文件对象或直接使用字符串路径)?当我开始使用新的Gradle API时,我遇到了同样的问题。尽管dir()允许绝对路径,因此您可以为任何目录构造一个目录实例,但在我看来,这似乎是一个糟糕的设计 然而,实际上这是一个非常一致的设计,因为使用我们刚

我想创建的实例。从Gradle文档中我看到,唯一的方法是使用
project.getLayout().getProjectDirectory()
创建第一个实例,然后在此实例上使用实例方法
dir()
为另一个目录创建实例


有没有办法直接创建
目录
类的实例(比如使用
文件
对象或直接使用字符串路径)?

当我开始使用新的Gradle API时,我遇到了同样的问题。尽管
dir()
允许绝对路径,因此您可以为任何目录构造一个
目录
实例,但在我看来,这似乎是一个糟糕的设计


然而,实际上这是一个非常一致的设计,因为使用我们刚才在路径上调用的
Project.file(…)
,它也基于项目目录评估相对路径。使用Gradle直接使用构造函数构造
文件
实例总是一个坏主意。现在,我们可以将对
file()
的调用替换为对
layout.projectDirectory.dir()或
文件的调用(发件人:此接口不适用于生成脚本或插件作者实现。那么,您为什么需要它?@daggett文档希望阻止生成脚本和插件作者实现该接口(如在
类MyDirectory implements Directory中所示)
)。相反,他们应该使用Gradle API创建实例,以使用Gradle提供的内部实现。