Andorid Gradle插件
1. Gradle
1). 资料
- Gradle 基于 groovy 语言,groovy 官网
- Gradle DSL
- Android Plugin DSL
- Gradle task
2). 查看所有任务
./gradlew tasks --all
- compileDebugJavaWithJavac:编译 java 文件
- processDebugManifest:生成最终 AndroidManifest 文件
- compileDebugAidl:编译 AIDL 文件
- packageDebug:打包成 apk
- transformClassesAndResourcesWithProguardForRelease task,即为 release 包混淆。
2. 插件基础
1). 基本步骤
- 创建Android项目
- 新建一个Java Library Module, 该module必须命名为buildSrc
- 将src/main/java修改为src/main/groovy
- 在groovy文件夹下,新建xxxPlugin.groovy, 并实现Plugin接口, 泛型参数为Project
注:由于 Kotlin/Java 与 groovy 的兼容,所以并非一定要创建 groovy 文件,也可以是 xxxPlugin.java/xxxPlugin.kotlin
2). 项目目录结构
3). TestGlugin.groovy
class TestPlugin implements Plugin<Project> { @Override void apply(Project project) { // 执行任务 project.task('pluginTest') { doFirst { println "mazaiting" } doLast { println "Hello World!" } } } }
4). 应用
在app/build.gradle文件中应用
apply plugin: TestPlugin
5). 执行任务
在项目的根目录下运行
gradlew pluginTest
3. 扩展
需求,用户自定义输出内容
1). 创建TestPluginExtension类
class TestPluginExtension { String message = 'Hello World' }
2). 创建TestExtension类
class TestExtension implements Plugin<Project> { @Override void apply(Project project) { // 这个名称在*.gradle文件中使用 def extension = project.extensions.create("testExtension", TestPluginExtension) // 这个任务名在命令行中使用 project.task('pluginTestExtension') { doLast { println extension.message } } } }
3). 应用
在app/build.gradle文件中应用
apply plugin: TestExtension testExtension { message 'mazaiting' }
4). 执行命令
gradlew pluginTestExtension
4. 项目化
1). 修改build.gradle
apply plugin: 'groovy' dependencies { compile gradleApi() compile localGroovy() }
gradle同步之后, External Libraries 中多出了 gradle-api/gradle-installation-beacon/groovy 库。
2). 创建配置文件
- 创建 src/main/resources/META-INF/gradle-plugins/插件名.properties,例如 src/main/resources/META-INF/gradle-plugins/com.mazaiting.properties
- properities 文件内容改为 implementation-class=Plugin 路径,例如 implementation-class=com.mazaiting.TestExtension
3). 应用
在 build.gradle 文件中通过 apply plugin: '插件名' 引入插件 —— apply plugin: 'com.mazaiting'。
4). 执行
gradlew pluginTestExtension
5). 结果
6). 上传到Jcenter
代码下载

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java体系化学习路线图总结,带走不谢!
Web应用,最常见的研发语言是Java和PHP。 后端服务,最常见的研发语言是Java和C/C++。 大数据,最常见的研发语言是Java和Python。 可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。 有不少朋友问,除了掌握Java语法,还要系统学习哪些Java相关的技术,今天分享一个,互联网Java技术学习路线图。 一:常见模式与工具 学习Java技术体系,设计模式,流行的框架与组件是必不可少的: ·常见的设计模式,编码必备 ·Spring5,做应用必不可少的最新框架 ·MyBatis,玩数据库必不可少的组件 二:工程化与工具 工欲善其事必先利其器,不管是小白,还是资深开发,玩Java技术体系,选择好的工具,提升开发效率和团队协作效率,是必不可少的: ·Maven,项目管理 ·Jenkins,持续集成 ·Sonar,代码质量管理 ·Git,版本管理 三:分布式架构 高并发,高可用,海量数据,没有分布式的架构知识肯定是玩不转的: ·分布式架构原理 ·分布式架构策略 ·分布式...
- 下一篇
用js获取当前月份的天数
原文: 用js获取当前月份的天数 在获取每月天数的时候,一般都是存储到一个数组中进行获取,但是如果是二月份的话就需要首先判断是否闰年,再确定是28还是29了。 js可以通过Date对象很方便的获取到每月的天数,在初始化Date对象时,我们可以通过这种方式 var d = new Date(2017,2,0); console.log(d.getDate()); 以上代码可以在控制台输出2015年2月份的天数 Date对象月份从0开始,即0表示1月份,以此类推。 在上面的代码中,我们初始化d为三月份的第0天,由于JavaScript中day的范围为1~31中的值,所以当设为0时,会向前一天,也即表示上个月的最后一天。 通过这种方式可以得到每个月份的天数,也不同区分闰年了,很方便~ 可以写个这样的函数,如下: function mGetDate(year, month){ var d = new Date(year, month, 0); return d.getDate(); } 在使用时传入想要获取的年份和月份即可,如下: var totalDay = mGetDate(2004,2)...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Linux系统CentOS6、CentOS7手动修改IP地址
- Red5直播服务器,属于Java语言的直播服务器