在build.Gradle中使用自定义Gradle插件的多种方法
我已经创建了一个简单的插件来说明使用定制Gradle插件通过插件扩展公开的DSL的各种方法(似乎有效)。例如,下面的插件定义和类在build.Gradle中使用自定义Gradle插件的多种方法,gradle,build.gradle,Gradle,Build.gradle,我已经创建了一个简单的插件来说明使用定制Gradle插件通过插件扩展公开的DSL的各种方法(似乎有效)。例如,下面的插件定义和类 class GreetingPlugin implements Plugin<Project> { void apply(Project project) { // Add the 'greeting' extension object project.extensions.create("greeting", Gr
class GreetingPlugin implements Plugin<Project> {
void apply(Project project) {
// Add the 'greeting' extension object
project.extensions.create("greeting", GreetingPluginExtension)
// Add a task that uses the configuration
project.task('hello') << {
println project.greeting.message
}
}
}
class GreetingPluginExtension {
def String message = 'Hello from GreetingPlugin'
}
class GreetingPlugin实现插件{
无效申请(项目){
//添加“问候语”扩展对象
project.extensions.create(“问候语”,问候语)
//添加使用配置的任务
project.task('hello')正如Opal所说,所有4种方法都很好,这取决于您对可读性的要求。如果您需要配置的内容比消息多,那么使用闭包的配置块可能更方便
使用赋值运算符和省略它之间也有区别:当使用赋值运算符时,您显式地设置属性,而省略它意味着调用具有该名称的方法。在这种情况下,我更喜欢使用赋值运算符
您可以在此处查看:所有方法都很好,它们只是以不同的方式(通过不同的机制)进行评估。在某些情况下,传递封装配置的闭包更方便、更直观。