使用AndroidStudio创建自定义gradle插件并被引用实战例子

项目中引入自定义Gradle plugin一般有三种方法: 

  1. 直接写在 build.gradle中.

  2. plugin源码放到rootProjectDir/buildSrc/src/main/groovy目录下

  3. plugin打包成jar, 发布到maven仓库, 然后项目通过Build Script依赖jar的形式引入

下面介绍的是第3种自定义Gradle插件的方式.

1.创建AndroidLibrary

使用AndroidStudio创建自定义gradle插件并被引用实战例子_第1张图片

2.建立plugin的目录结构

把之前目录下的文件全部删掉,只保留build.gradle文件

建立groovy文件夹,在下边建立com.xx.xxx包结构

使用AndroidStudio创建自定义gradle插件并被引用实战例子_第2张图片

3.创建MyPlugin文件

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

public class MyPlugin implements Plugin {

    void apply(Project project) {
        System.out.println("========================");
        System.out.println("hello gradle plugin!");
        System.out.println("========================");
    }
}

4.在resources下建立\META-INF\gradle-plugins\com.XXX.myplugin.properties

implementation-class=com.lj.plugin.MyPlugin

5.在build.gradle文件中进行配置

apply plugin: 'groovy'
//添加maven plugin, 用于发布我们的jar
apply plugin: 'maven'

dependencies {
    compile gradleApi()
    compile localGroovy()
    compile 'org.codehaus.groovy:groovy-all:2.3.6'
    compile 'org.javassist:javassist:3.20.0-GA'
}

repositories {
    mavenCentral()
}

//设置maven deployer
uploadArchives {
    repositories {
        mavenDeployer {
            //设置插件的GAV参数
            pom.groupId = 'com.lj.plugin'
            //pom.artifactId = 'cooker-plugin'
            pom.version = 1.0
            //文件发布到下面目录
            repository(url: uri('D:/release'))
        }
    }
}

6.生成插件包

使用AndroidStudio创建自定义gradle插件并被引用实战例子_第3张图片

在D:\release\com\lj\plugin\myplugin\1.0目录下看到

使用AndroidStudio创建自定义gradle插件并被引用实战例子_第4张图片

7.在要引用的app的build.gradle中添加

就是com.XXX.myplugin.properties的文件名去掉properties

apply plugin: 'com.xxxx.myplugin'

8.在整个项目的build.gradle中添加如下内容

buildscript {
    repositories {
        jcenter()
        maven {
                //cooker-plugin 所在的仓库
                //这里是发布在本地文件夹了
                url uri('D:/release')
            }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.2'
        classpath 'com.lj.plugin:myplugin:1.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

9.build项目在message窗口看到输出内容

使用AndroidStudio创建自定义gradle插件并被引用实战例子_第5张图片


你可能感兴趣的:(Android)