听说Gradle插件有三种,不过我只用过一种,哈哈哈~
创建Gradle Module
file -> new Module -> Android Library,输入库名,点击Next
删除无用文件
保留src/main和build.gradle,其他都删除
新建入口文件
src/main下新建groovy\com\blacktoast\stydy\gradle\StudyPlugin.groovy
配置build.gradle
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 
 | apply plugin: 'groovy'  apply plugin: 'maven'
 
 
 group = 'com.blacktoast.study.gradle'
 version = '1.0.0'
 
 
 dependencies {
 
 compile gradleApi()
 
 compile localGroovy()
 }
 
 
 repositories {
 mavenCentral()
 }
 
 
 uploadArchives {
 repositories {
 mavenDeployer {
 
 
 
 
 
 
 repository(url: uri('../repo'))
 }
 }
 }
 
 | 
编写StudyPlugin.groovy文件
先同步下,保证两个sdk(gradle sdk、groovy sdk)已经导入,然后编写StudyPlugin.groovy文件
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 
 | package com.blacktoast.study.gradle
 import org.gradle.api.Plugin
 import org.gradle.api.Project
 
 public class StudyPlugin implements Plugin<Project> {
 
 @Override
 void apply(Project project) {
 
 def studyTask = project.task("study")
 
 studyTask << {
 println "Welcome to Gradle's World."
 }
 
 
 studyTask.group = "study"
 }
 }
 
 | 
新建properties文件
在src/main下新建resources\META-INF\gradle-plugins\plugin.study.properties,其中plugin.study为插件名,插件名可以自定义。在其中添加以下代码,指定插件入口文件
| 1
 | implementation-class=com.blacktoast.study.gradle.StudyPlugin
 | 
上传插件
gradle中存在gradlestudy -> Tasks -> upload -> uploadArchivs(由于在build.gradle文件中配置的),点击这个task执行上传操作
使用自定义gradle插件
在项目的build.gradle中添加配置
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 
 | ...
 buildscript {
 repositories {
 maven {
 
 url uri('repo')
 }
 ...
 }
 
 ...
 
 dependencies {
 ...
 
 
 
 
 classpath "com.blacktoast.study.gradle:gradlestudy:1.0.0"
 }
 }
 
 ...
 
 allprojects {
 repositories {
 maven {
 
 url uri('repo')
 }
 }
 }
 
 ...
 
 | 
module中使用插件,plugin.study为properties文件对应的插件名
| 1
 | apply plugin: 'plugin.study'
 |