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条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- MySQL数据库在高并发下的优化方案
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作