在已有的项目中新建一个groovy module,这个Module的名称必须为buildSrc

Gradle新建插件buildSrc_ide

删除无用目录

Gradle新建插件buildSrc_ide_02

更改build.gradle文件:

apply plugin: 'groovy'

dependencies {
    //gradle sdk
    compile gradleApi()
    //groovy sdk
    compile localGroovy()
}
repositories {
    jcenter()
}

Gradle新建插件buildSrc_Groovy_03

在groovy目录下新建Groovy类TestPlugin

package com.plugin

import org.gradle.api.Plugin
import org.gradle.api.Project

class TestPlugin implements Plugin<Project> {
    @Override
    void apply(Project project) {
        project.task('testPlugin') << {
            println "this is testPlugin"
        }
    }
}

再创建MyExtension的groovy类

package com.plugin

class MyExtension {
    String message
}

在创建了Extension之后,须要改动下之前创建的TestPlugin类来载入Extension

package com.plugin

import org.gradle.api.Plugin
import org.gradle.api.Project

class TestPlugin implements Plugin<Project> {
    @Override
    void apply(Project project) {
        project.extensions.create('pluginsrc', MyExtension)

        project.task('testPlugin') << {
            println project.pluginsrc.message
        }
    }
}

创建pluginsrc.properties

implementation-class=com.plugin.TestPlugin

Gradle新建插件buildSrc_Groovy_04

在主项目中使用插件

build.gradle文件里添加

apply plugin: 'pluginsrc'

在主项目的build.gradle文件里,通过例如以下所看到的的代码来载入Extension

pluginsrc{
    message = 'hello testPlugin'
}

 终端运行gradle testPlugin指令

Gradle新建插件buildSrc_ci_05

Gradle新建插件buildSrc_ci_06