gradle插件开发、本地调试及发布

gradle插件开发、本地调试

1、新建一个Android Library Module,删减其他目录文件,并创建groovy目录直至如下


image.png

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 {

    @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{
    @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

打印结果


image.png

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配置

你可能感兴趣的:(gradle插件开发、本地调试及发布)