Android 自定义Gradle插件 可以修改其中的打包流程。 Android Studio 没有选项来创建自定义Gradle 插件库,Gradle插件库的名字必须是buildSrc
1) 新建Gradle 插件项目:
新建Module或者Android Library, 然后删除新建项目中的内容,只保留build.gradle和 src/main 目录
接下来修改插件项目build.gradle文件,配置如下:
apply plugin: 'groovy'
dependencies {
compile gradleApi()
compile localGroovy()
}
然后在buildSrc 项目中创建MyPlugin.groovy 类,groovy 和 java 语法一致。
package com.xiongliang.buildsrc
import org.gradle.api.Plugin
import org.gradle.api.Project
public class MyPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
def extension = project.extensions.create("pluginSrc",MyExtension)
project.task("myPlugin") {
println(String.valueOf(extension.message))
}
}
}
最后创建resources 文件下,以及相应的META-INF.gradle-plugins 子文件夹, 并在文件夹中创建com.xiongliang.plugin.properties文件, 代码结构如下图:
图中 com.xiongliang.plugin文件是自定义Gradle 插件的入口,里面只有一行代码,指定执行这个自定义插件,就会进入先执行MyPlugin类的apply 方法
implementation-class=com.xiongliang.buildsrc.MyPlugin
2)使用自定义 Gradle插件
在主App 项目的build.gradle 中,增加对gradle 插件的引用,其中的值与插件中定义的com.xiongliang.plugin 名字一致。
apply plugin: 'com.xiongliang.plugin'
pluginSrc {
message = 'gradle plugin'
}
配置完毕之后,点击Android Studio 导航栏中的Sync Project With Gradle Files 按钮, 就会在Gradle Projects面板中生成一个新的task, 名字是myPlugin, 位于other 分组中,点击myPlugin, 就会在Gradle Console 面板中打印日志。
参考: https://github.com/wequick/Small/tree/master/Android/DevSample/buildSrc