Android-如何自定义gradle插件
自定义gradle插件可以实现定制自己的构建流程,以达到复用目的;
##1. 自定义插件方式
自定义插件有三种方式
-
添加脚步
在你的app项目的build.gradle中直接使用groovy脚步语言编写插件
这样方式好处是插件能自动变异且被包含到构建脚步中,你无需做任何处理;缺点是插件到逻辑都放到都build.gradle中去了,增加了脚步的复杂度且无法复用 -
添加buildSrc工程
在根目录添加buildSrc子Module,这种方式比前一种好些,将插件的代码统一放到buildSrc工程中去了,但还是做不到别的工程能够使用它
-
单独新建一个工程
这种方式最优,将插件集中在一个单独的工程中,且发布到gradle后,别的工程能够轻松复用它
##2. 自定义插件实现
###2.1 第一种------添加脚步
在你的主工程app module的build.gradle中直接添加脚步
Example:
class HelloConfigExtension {
String msg = 'Hello gradle plugin'
}
class HelloPlugin implements Plugin<Project> {
void apply(Project project) {
// Add the 'hello' extension object
def extension = project.extensions.create('hello', HelloConfigExtension)
project.task('hello') {
doLast {
println extension.msg
}
}
}
}
// Apply the plugin
apply plugin: HelloPlugin
//Config the extension
hello{
msg = 'hello from gradle'
}
在控制台输入 ./gradlew -q hello
> gradle -q hello
hello from gradle
上述命令表明需要执行一个hello任务 -q表示除去打印日志(错误日志除外);因为我们在插件中定义了一个hello任务,这个任务就是打印从gradle传入的msg参数;
这样一个简单的插件就实现了,当然完全可以根据自己的业务需求实现自己的插件
##2.2 第二种------添加buildSrc Module
在根工程中添加手工添加一个buildSrc 目录结构如下