自定义GradlePlugin教程

背景

Gradle是Android开发过程中重要的打包工具,官方给出了好多现成的插件。但是有些场景还是需要根据业务来自定义打包插件,这里简单介绍一下如何自定义一款打包插件

新建module

首先在Androidstudio中新建module,如图所示。

新建完成后,整体的文件格式如图,这里删除了一些无用的文件与文件夹

配置Gradle

下面我们将Gradle按照Plugin的发布方式进行配置。

plugins {
    id 'groovy'
    id 'java-gradle-plugin'
    id 'maven-publish'
}

group = "com.example.firstplugin"
version="1.0.0-SNAPSHOT"
description="First Plugin"

sourceSets {

    main {
        groovy {
            srcDir 'src/main/groovy'
        }
        java {
            srcDir 'src/main/java'
        }
        resources {
            srcDir 'src/main/resources'
        }
    }

}

gradlePlugin {
    plugins {
        modularPlugin {
            //Plugin ID
            id="com.example.firstplugin"
            //Plugin implementation
            implementationClass="com.example.plugin.MyCustomizedPlugin"
        }
    }
}
  1. groovy插件:使用 Groovy 语言开发必备;
  2. java-gradle-plugin插件:用来帮助开发Gradle的插件,会自动应用Java Library插件,并在dependencies中添加implementation gradleApi()
  3. maven-publish插件:用来将打包的AAR包推送到maven仓库的插件

group、version和description分别是对应AAR包的参数,这里不做赘述。sourceSets用来指定对应的文件位置。gradlePlugin参数现在暂时还用不到,稍后解释。

编写代码

Gradle插件的核心类是Plugin,一般使用 Project作为泛型实参。当使用方引入插件后,其实就是调用了 Plugi中apply() 方法,我们可以把 apply() 方法理解为插件的执行入口,具体的业务代码如下:

我们还需要将插件与自定义的实现类联系起来,这里需要在build.gradle中增加gradlePlugin参数,这里需要配置对应的PluginID与PluginClass。

验证

将自定义的Plugin打包并推送到本地maven仓库,通过open ~/.m2检查本地maven仓库

在项目层级的build.gradle中增加自定义插件

在其他子module中的build.gradle中应用插件,点击其中的Task查看结果,成功实现自定义Plugin。如果觉得有用请点赞,有问题欢迎评论区大家讨论交流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值