听说Gradle插件有三种,不过我只用过一种,哈哈哈~
创建Gradle Module
file -> new Module -> Android Library,输入库名,点击Next
删除无用文件
保留src/main和build.gradle,其他都删除
新建入口文件
src/main下新建groovy\com\blacktoast\stydy\gradle\StudyPlugin.groovy
配置build.gradle
1 2 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文件
1 2 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中添加配置
1 2 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'
|