前言:
在android开发中平常所接触的gradle脚本,配置好了点击run按钮就能编译、打包、安装等等操作,编译出想要的apk,大大方便了开发过程。但是自己对gradle的了解和掌握仅仅只是够用,于是大量查资料开始学习gradle。
这篇笔记主要解释了构建的概念、什么是构建工具,和gradle的基础概念,并清晰解释了学好gradle的必须基础:groovy 和 响应的DSL。
1. 什么是构建
构建是一个对象,环境,和生成软件产品方法的集合。
这里边包含了三方面的意思
1. 构建对象,就是构建的输入。构建的对象包括源代码(source code),发布事项(release notes),readme文件,变更记录(change log)等构建的原材料。
2. 构建环境就是一个可以进行构建,生成软件产品的地方。
3. 构建方法。构建方法告诉我们在构建环境中,按照构建方法所描述的内容,对构建对象进行构建就可以生成软件产品。
通俗的说,构建就是根据输入信息然后干一堆事情,最后得到几个产出物(Artifact)。
“构建”通常是指建设的过程。构建过程可能包含有计划,设计,检查工作的一些方面,但是在大多数时候,构建就是指创建事物过程中动手的那些部分。
2. 构建工具
构建工具概念
- 构建工具是一个可编程的工具,能够以可执行和有序的任务来表达满足需要的自动化过程。
- 构建工具就是用来让我们不再做机械重复的事情,解放我们的双手的。
Java中的构建工具
现在Java世界的常用构建工具:
Ant
Ant使用XML作为脚本编写格式。 XML,本质上是层次化的,并不能很好地贴合Ant过程化编程的初衷。Ant的另外一个问题是,除非是很小的项目,否则它的XML文件很快就大得无法管理。Maven
Maven的也使用xml作为脚本。XML作为配置文件的格式有严格的结构层次和标准,定制化目标(goal)很困难。因为Maven主要聚焦于依赖管理,实际上用Maven很难写出复杂、定制化的构建脚本。
即很难描述出if(某条件) xxx else(某条件) xxx,这样的语句。Gradle
- Gradle结合了前两者的优点,在此基础之上做了很多改进。它具有Ant的强大和灵活,又有Maven的生命周期管理且易于使用。
- Gradle不用XML,它使用基于Groovy的专门的DSL,从而使Gradle构建脚本变得比用Ant和Maven写的要简洁清晰。Gradle样板文件的代码很少,这是因为它的DSL被设计用于解决特定的问题:贯穿软件的生命周期,从编译,到静态检查,到测试,直到打包和部署。
3. Gradle介绍
基于:
- gradle基于groovy。所以能很好解决Maven的局限性,很方便写出复杂、定制化的构建脚本。
- gradle是一种DSL(Domain Specific Language),领域特定语言。
所谓领域专用语言(Domain Specific Language/DSL),其基本思想是“求专不求全”,不像通用目的语言那样目标范围涵盖一切软件问题,而是专门针对某一特定问题的计算机语言。
DSL通俗讲就是行话。
在Android studio构建中,该行话就是: Android Plugin DSL Reference。必须要了解它才能写好配置脚本。
如何学习:
知道了gradle基于基于groovy,并是一种DSL,所以要想掌握gradle,必须要了解这么两个基础知识 :
- Groovy。了解Groovy语言是掌握Gradle的基础。
- 了解Gradle的DSL。了解Gradle的行话。
参考
深入理解Android之Gradle <—这篇文章真的好!!!全部基于该文章而理解。
什么是构建
什么是构建工具
Java构建工具:Ant vs Maven vs Gradle