除了其他东西,我在gradle构建文件中有以下内容
targetCompatibility = '1.8'
checkstyle {
toolVersion = '6.6'
}
task wrapper(type: Wrapper) {
gradleVersion = '2.4'
}
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
在我对gradle的有限理解中,所有4个部分都是插件的配置。但他们看起来非常不同。
除了不同的语法之外,4种变体之间的语义差异是什么?
我怎么能从文档中理解使用哪种风格?
targetCompatibility = '1.8'
这是Java Plugin Convention Property,即允许您使用项目属性而不是仅使用任务属性设置其值的属性。这些属性通常在插件文档中列出。您可以阅读有关常规属性here的更多信息。
checkstyle {
toolVersion = '6.6'
}
此任务的类型是CheckstyleExtension,您可以在其DSL Documentation中找到其可用属性。
task wrapper(type: Wrapper) {
gradleVersion = '2.4'
}
在这里,您可以定义Wrapper类型的任务实例。因此,任务wrapper
具有与Wrapper任务类型相同的属性,其DSL定义为here。
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
此语法用于配置特定类型的所有任务。在这种情况下,您将选择JavaCompile类型的所有任务并配置其options.encoding属性。