groovy 语法入门
gradle 基础
gradle 任务
gradle 插件
gradle-java 插件
gradle-android 插件
前面简单的写了点关于gradle的以及gradle插件的东西,现在我们来看一下如何自定义插件,本篇文章是基于AndroidStudio、Android工程进行讲述。
存放插件源码
我们可以在以下几个地方存放我们的插件源码
Build Script
每个module中都会有build.gradle文件,我们可以在该文件中编写一些所需要的插件功能,好处是可以被自动编译并且包含在构建脚本的class path中(项目根目录下的build.gradle中buildScript中使用classPath依赖的插件),坏处是不能被其他模块访问,插件功能没办法重用。
buildSrc
Module
根据所选语言的不同,我们可以把插件代码放在rootProjectDir/buildSrc/src/main/java
、rootProjectDir/buildSrc/src/main/groovy
、rootProjectDir/buildSrc/src/main/kotlin
文件夹下,同样的,我们也不需要做额外的操作就可以在其他module中使用,但是不能在其他项目中引用
Standalone Project
我们可以为插件单独创建一个项目或者一个module,将它编译为jar包或者其他形式发布出去,使得其他项目可以引用
编写插件代码
先看下写在Build Script
中的构建脚本。
这里的Build Script
指的是每个module都会有build.gradle
文件,我们对每个module的某些编译配置选项也会在这里配置.
首先需要明确的是,我们可以在build.gradle
文件编写Groovy、Java代码,还可以回顾一下之前写的一坨文章看一下。
以下代码我是在resource1模块的build.gradle文件中编写
先声明一个继承自org.gradle.api.Plugin.Plugin
的类
class MyPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
project.task("greeting") {
doLast