我正在学习gradle +KotlinDSL,试图理解它创建的所有“神奇”对象(隐式接收器):
// hello, world build.gradle.kts
tasks.register("hello") {
doLast {
println("Hello world! ${tasks::class} ${this::class}")
}
}
我很好奇(预定义的)tasks
容器或隐式创建的Task
(我猜是doLast
的接收者)的对象类是什么?); I get:
Hello world! class org.gradle.api.internal.tasks.DefaultTaskContainer_Decorated class org.gradle.api.DefaultTask_Decorated
我不应该对*.internal
的类名感到惊讶,但DefaultTask_Decorated
来自哪里?公共API只列出*.api.DefaultTask
。
1条答案
按热度按时间sh7euo9m1#
org.gradle.API.internal.tasks.DefaultTaskContainer_Decorated看起来是内部TaskContainer实现。请参阅https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/TaskContainer.html“您可以通过调用Project.getTasks()或使用tasks属性来获取TaskContainer示例”。