考虑包含在gradle构建脚本中的以下方法invokation:
gradle.taskGraph.whenReady{taskGraph ->
println gradle.toString()
println "Ready"
}
打印
build 'task_graph'
Ready
我认为我们在Project对象的范围内工作,因为gradle
应该是该Project
对象的属性。但是既没有财产,也没有这种名称的方法。为什么我们可以在构建脚本中使用它?
答案 0 :(得分:2)
我可能错了,但我认为您的疑惑是getGradle()
界面上存在Project
方法,但没有名为gradle
的公共字段。这是一个Groovy功能。在Groovy中,getter和setter方法可以作为属性引用。例如:
println project.description // same as project.getDescription()
project.description = 'My java project' // same as project.setDescription('My java project')
我强烈建议您通过查看their documentation来熟悉Groovy。您将在Gradle示例中看到许多不同的语法,因为在Groovy中有许多不同的方法可以完成同样的事情。