项目中引入自定义Gradle plugin一般有三种方法:

  1. 直接写在 build.gradle中.

  2. plugin源码放到rootProjectDir/buildSrc/src/main/groovy目录下

  3. plugin打包成jar, 发布到maven仓库, 然后项目通过Build Script依赖jar的形式引入

下面介绍的是第3种自定义Gradle插件的方式.

1.创建AndroidLibrary

2.建立plugin的目录结构

把之前目录下的文件全部删掉,只保留build.gradle文件

建立groovy文件夹,在下边建立com.xx.xxx包结构

3.创建MyPlugin文件

import org.gradle.api.Plugin
import org.gradle.api.Projectpublic class MyPlugin implements Plugin<Project> {void apply(Project project) {System.out.println("========================");System.out.println("hello gradle plugin!");System.out.println("========================");}
}

4.在resources下建立\META-INF\gradle-plugins\com.XXX.myplugin.properties

implementation-class=com.lj.plugin.MyPlugin

5.在build.gradle文件中进行配置

apply plugin: 'groovy'
//添加maven plugin, 用于发布我们的jar
apply plugin: 'maven'

dependencies {compile gradleApi()compile localGroovy()compile 'org.codehaus.groovy:groovy-all:2.3.6'
    compile 'org.javassist:javassist:3.20.0-GA'
}repositories {mavenCentral()
}//设置maven deployer
uploadArchives {repositories {mavenDeployer {//设置插件的GAV参数
            pom.groupId = 'com.lj.plugin'
            //pom.artifactId = 'cooker-plugin'
            pom.version = 1.0
            //文件发布到下面目录
            repository(url: uri('D:/release'))}}
}

6.生成插件包

在D:\release\com\lj\plugin\myplugin\1.0目录下看到

7.在要引用的app的build.gradle中添加

就是com.XXX.myplugin.properties的文件名去掉properties

apply plugin: 'com.xxxx.myplugin'

8.在整个项目的build.gradle中添加如下内容

buildscript {repositories {jcenter()maven {//cooker-plugin 所在的仓库
                //这里是发布在本地文件夹了
                url uri('D:/release')}}dependencies {classpath 'com.android.tools.build:gradle:2.2.2'
        classpath 'com.lj.plugin:myplugin:1.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}allprojects {repositories {jcenter()}
}

9.build项目在message窗口看到输出内容

使用AndroidStudio创建自定义gradle插件并被引用实战例子相关推荐

  1. 通过自定义Gradle插件修改编译后的class文件

    我的简书同步发布:通过自定义Gradle插件修改编译后的class文件 转载请注明出处:[huachao1001的专栏:http://blog.csdn.net/huachao1001] 或许你会觉得 ...

  2. 创建第一个适用于Android的自定义Gradle插件-第2部分:在构建时生成资源

    A hands on tutorial to get started with adding custom functionality to your Android builds using Kot ...

  3. Android组件化开发实践(九):自定义Gradle插件

    本文紧接着前一章Android组件化开发实践(八):组件生命周期如何实现自动注册管理,主要讲解怎么通过自定义插件来实现组件生命周期的自动注册管理. 1. 采用groovy创建插件 新建一个Java L ...

  4. 【Android Gradle 插件】自定义 Gradle 插件优化图片 ① ( Android 中的 WebP 图片格式使用 | WebP 格式转换 | WebP 参考文档 )

    文章目录 一.Android 中的 WebP 图片格式使用 二.WebP 格式转换 三.WebP 参考文档 Android Plugin DSL Reference 参考文档 : Android St ...

  5. 自定义Gradle插件之Hello World

    自定义Gradle插件之"Hello World" 0.新建一个用于开发这个插件的文件夹 1.确定Plugin id Plugin id一般定义为java 包名. 由字母和数字及& ...

  6. Gradle学习第一篇——自定义Gradle插件

    纸上得来终觉浅,绝知此事要躬行. 自定义Gradle插件有三种方法,各有优劣处,同类博客文章很多但是有的语法已经过时了,笔者运行环境 Android Studio Dolphin && ...

  7. Android 自定义gradle插件

    android自定义gradle插件的步骤 1.首先我们新建一个android项目 2.然后新建一个android module a.删除一些不需要的文件目录,然后新建groovy,resources ...

  8. Android如何自定义Gradle插件

    Android-如何自定义gradle插件 自定义gradle插件可以实现定制自己的构建流程,以达到复用目的: ##1. 自定义插件方式 自定义插件有三种方式 添加脚步 在你的app项目的build. ...

  9. 【错误记录】自定义 Gradle 插件报错 ( Could not find implementation class x for plugin x specified in jar:file )

    文章目录 一.报错信息 二.解决方案 一.报错信息 参考 [Android Gradle 插件]自定义 Gradle 插件模块 ④ ( META-INF 中声明自定义插件的核心类 | 在应用中依赖本地 ...

最新文章

  1. 三维目标检测算法原理
  2. Session丢值的问题
  3. asp.net访问被拒绝,程序集无法加载原因与解决方法[摘录]
  4. Codeforces Round #375 (Div. 2) D. Lakes in Berland 并查集
  5. 条件概率、全概率公式与贝叶斯公式
  6. JavaScript公共运行库
  7. 深入理解Spring异常处理
  8. 多年软件测试大牛分享成长经历,一个好的软件测试工程师应该做到这些!
  9. 本人原创,如何应用firebug突破新浪ishare下载限制
  10. Php clearstatcache() 函数详解
  11. Easy RM to MP3 Converter漏洞分析报告
  12. 如何测试硬盘软件,win10系统怎么用硬盘检测工具HDTune【图文】
  13. 浅谈互联网寒冬与经济形势
  14. .NET基础-18-html中各种常用标签
  15. 2021-03-11 Android 异常情况下长按power按键10s关机或者重启
  16. 利用API爬取QQ音乐评论
  17. 卫生洁具安装工艺标准
  18. 2010.12.29(2)——— android GridView
  19. 电脑右下角图标不显示
  20. 嵌入式 STM32 串口波特率生成器BRR的值计算笔记

热门文章

  1. 《一只孤独的船》莱蒙托夫
  2. Centos7.0安装tensorflow
  3. Canny边缘检测算法
  4. Linux/Unix下的任务管理器-top命令
  5. Linux C++多线程同步的四种方式
  6. 【MSTR产品】获取当前登陆用户的login_id
  7. [云炬创业基础笔记] 第四章测试13
  8. 科大星云诗社动态20211212
  9. 云炬Android开发笔记 19参考面包多商城优化“我的”页面
  10. Go进阶(3): 函数+闭包+defer