gradle 初探

这是我参与更文挑战的第2天,活动详情查看:更文挑战

Android开发Gradle基础

前言:

Android开发平时除了使用gradle做构建,打包和布署之外,我们应该没有直接使用gradle开发的经历,gradle和maven很相似,不过比maven精简许多,使用groovy作为脚本语言。
其实从16年开始真正接触android studio作为android开发工具已有5个年头,但是从来没有认真的去对待gradle。认为他只是一个构建工具没有太大学习的必要。而在有一天我集成TX的sdk时,遇到了问题。找TX技术咨询,eeee的技术说先去学学gradle吧。~~~~~~111~~~~泪千行

Android应用程序所生成的Gradle构建文件

使用Android Studio创建一个新的Android项目,并查看settings.gradle、build.gradle和app/build.gradle文件。

  1. settings.gradle => Android项目是多项目Gradle构建(将一个项目划分为多个模块,然后通过父工程去管理子模块)。Settings.gradle文件显示了每个子目录所对应的子项目。如图:项目分了三个模块 app,mvvm_lib,WYH20.03.30 在settings中使用include引入

1624004048(1).jpg
2. 根目录下的build.gradle => 创建项目默认使用jcenter google 仓库来下载插件或者引用的第三方库
我们可以在allprojects中配置国内的一些镜像地址比如阿里云
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
如果搭建了本地仓库的话也是在这里进行配置地址引用
maven { url "file://${new File(project.rootProject.rootDir, 'local_repo').getAbsolutePath()}" }

1624004591(1).jpg

在命令行执行Gradle构建

我们不需要为了构建Android项目而安装Gradle!Android Studio包含了一个Gradle的发行版本(以一个插件的形式gradle-wrapper)并包含了专门的功能来支持它。

“Gradle wrapper”引用gradlew脚本和gradlew.bat脚本,gradlew脚本给UNIX使用,这两个脚本在Android应用程序的根目录,结尾的“w”代表“wrapper”。

Gradle Wrapper的第一个目的就是允许客户端无须安装即可运行Gradle。wrapper使用了应用程序根目录下的gradle/wrapper下的gradle-wrapper.jar和gradle.wrapper.properties文件来启动进程

1624006400(1).jpg
图示中distributionUrl显示了下载并安装gradle6.5,在第一次运行后,这个Gradle的发行版本会被缓存到zipStoreBase下的zipStorePath目录被用于后续的Gradle任务的执行。

常用命令:

gradlew -v 查看Gradle、Groovy、Ant、JVM等的版本,截图如下:

1624007081(1).jpg
gradlew tasks –all 查看所有任务

gradlew androidDependencies 查看依赖树(可以使用任务的缩写 如:gradlew anDep 只要能保证这个缩写是唯一就可)

gradlew clean build –refresh-dependencies //强制更新最新依赖

gradlew installDebug //打debug包并安装

gradlew assembleDebug //编译并打Debug包

gradlew assembleRelease //编译打release包

gradlew installRelease //Release模式打包并安装

gradlew compileDebug –stacktrace // 查看详细的资源文件信息

gradlew build –info –debug –stacktrace //调试模式并打印堆栈信息

当项目中依赖某个库报错,而你又不知道是哪个,可以用gradlew build –info –debug –stacktrace 命令打印并排查对栈信息
android studio 也提供了视图模式直接可以操作gradlew 命令

1624007628(1).jpg

下一篇深入学习gradle

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享