美文网首页Android Gradle
android studio自定义Gradle插件趟坑之旅

android studio自定义Gradle插件趟坑之旅

作者: BurNingYue | 来源:发表于2017-10-11 14:47 被阅读344次

    什么是gradle插件?

    比方说我们任意打开一个开源的android源码 都能在build.gradle中看到如图所示的代码

    image.png

    这些apply plugin后面跟着的就是所谓的gradle插件

    gradle插件有什么用?

    一开始只是为了方便编译使用,传不同的参数编译出不一样的apk包,比如所谓的debug release包 混淆和未混淆的包等等。但是现在随着越来越多的开源框架(尤其是跟插件化 组件化 热修复 这种大型涉及到android编译过程的框架)复杂度提高,越来越多的框架选择自定义gradle plugin来完成对应的需求。所以知晓甚至熟悉如何自定义gradle 插件就成为我们读懂这些开源框架的必备技能之一

    下面就简单介绍一下自定义gradle plugin中遇到的哪些坑

    首先要明确一下自定义gradle插件分为两种

    第一种:只给自己project下使用的插件。无需上传maven。

    这种情况,我们在心间module的时候一定要取名为

    image.png image.png

    否则as是不认的!

    然后project的settings.gradle中 不要加: 例如:

    image.png

    注意看buildSrc 前面是没有冒号的

    最后就是下目录结构:

    image.png

    注意只有src和build.gradle 是我们编辑的 其他都是编译以后自动生成的。目录结构注意不要搞错。

    这种只给自己project下使用的gradle插件编写方式非常适合自学,但是最终我们都要提供出去给别人
    使用的对吧。

    第二种:上传到maven的gradle 插件。

    上传到maven的gradle 插件名字就可以随便写了,不像前面那种必须写死成buildSrc 这个名字。
    这是这两者最大的区别。然后因为要上传到maven所以我们的build.gradle自然也要修改
    `apply plugin: 'groovy'
    apply plugin: 'maven'

    group='com.example.wuyue'
    version='4.0.0'

    dependencies {
    compile gradleApi() //gradle sdk
    compile localGroovy() //groovy sdk
    }

    repositories {
    mavenCentral()
    }

    uploadArchives {
    repositories {
    mavenDeployer {
    repository(url: uri('D:/repos'))
    }
    }
    } `

    可以看出来我们这里上传到的是本地maven仓库,注意group和version的值

    然后在我们要使用这个插件的地方 也是在build.gradle中加入:

    image.png

    即可。注意classpath格式不要写错。

    相关文章

      网友评论

        本文标题:android studio自定义Gradle插件趟坑之旅

        本文链接:https://www.haomeiwen.com/subject/oplvpttx.html