gradle插件开发、本地调试
1、新建一个Android Library Module,删减其他目录文件,并创建groovy目录直至如下
2、build.gradle修改成:
apply plugin: 'groovy'
apply plugin: 'maven'
dependencies {
compile gradleApi()
compile localGroovy()
compile 'com.android.tools.build:gradle:3.2.0'//对应项目版本
compile 'org.ow2.asm:asm:6.0'
}
repositories {
jcenter()
google()
mavenCentral()
}
3、创建groovy文件
import org.gradle.api.Plugin
import org.gradle.api.Project
class TestPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
println("TestPlugin --> test")
}
}
4、使用插件
app模块build.gradle添加
apply plugin: cn.plugin.TestPlugin
注意,不要引号。
gradle插件上传
1、创建module选择Android Library。
2、删除src/main目录下所有文件/文件夹,创建如下目录和FirstPlugin.groovy文件,vkel.plugin.properties文件
3、新建java文件FirstPlugin.java,实现Plugin,泛型为Project,实现apply方法。改文件后缀为.groovy。
package cn.vkel.plugindemo
import org.gradle.api.Plugin
import org.gradle.api.Project
public class FirstPlugin implements Plugin<Project>{
@Override
void apply(Project project) {
project.task("testTask")<<{
println("我的第一个gradle插件")
}
}
}
4、vkel.plugin.properties
implementation-class=cn.vkel.plugindemo.FirstPlugin
5、插件模块build.gradle,发布到本项目中的配置
apply plugin: 'groovy'
apply plugin: 'maven'
group='cn.vkel.plugin'
version='1.0.0'
dependencies {
compile gradleApi()
compile localGroovy()
}
uploadArchives {
repositories {
mavenDeployer {
repository(url: uri('../plugins'))
}
}
}
6、根目录bulid.gradle
buildscript {
repositories {
google()
jcenter()
maven {
url uri('plugins')
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'cn.vkel.plugin:plugindemo:1.0.0'
}
}
7、在app模块build.gradle中使用插件
apply plugin:"vkel.plugin"
8、测试
终端(Terminal)输入
gradlew testTask
打印结果
9、发布到Maven私服的配置
apply plugin: 'groovy'
apply plugin: 'maven'
repositories {
mavenCentral()
}
dependencies {
compile gradleApi()
compile localGroovy()
}
uploadArchives {
repositories {
mavenDeployer {
repository(url: "http://localhost:8081/repository/ComponentDemo/") {
authentication(userName: "admin", password: "admin123") //账号,密码
}
pom.project {
version '1.0.2'
artifactId 'plugindemo'
groupId 'cn.vkel.electrocar'
description '我的第一个gradle插件'
}
}
}
}
10、发布到jCenter配置