Gradle - 简介

Gradle 简介

这里写图片描述

Gradle 系列

  1. Gradle - 简介
  2. Gradle - Groovy Language
  3. Gradle - DSL
  4. Gradle - Android Plugin DSL
  5. Gradle - 插件开发
  6. Gradle - 插件发布

Gradle 是什么?

Gradle is an open-source build automation tool focused on flexibility and performance. Gradle build scripts are written using a Groovy or Kotlin DSL.

Gradle是一款专注于灵活性和性能的开源构建自动化工具。Gradle构建脚本使用GroovyKotlin DSL 编写。

DSL 的全称是 Domain Specific Language,即领域特定语言,或者直接翻译成”特定领域的语言”,算了,再直接点,其实就是这个语言不通用,只能用于特定的某个领域,俗称“小语言”。因此 DSL 也是语言。

说白了,Gradle 就是一个自动化构建项目的工具,用来帮助我们自动构建项目。就像我们在写 Java 项目的时候,如果没有构建工具,我们需要先执行 javac 命令先将 Java 源码编译成 class 文件,然后再执行 jar 命令再把 class 文件打成 jar 包。有了构建工具我们只需要点一个按钮就可以了。

Java 的构建,经历了从 Ant -> Maven -> Gradle 的过程,每一次的进步,都是为了解决之前的工具带来的问题:

  • Ant:Ant 的功能虽然强大,但过于灵活,规范性不足,对目录结构及 build.xml 没有默认约定,且没有统一的项目依赖管理。
  • Maven:Maven 解决了规范性的问题,也顺带解决了依赖项统一管理的问题,但由于规范性太强,灵活性不足,pom.xml 采用 xml 结构,项目一大,Xml 就显得冗长。
  • Gradle:综合了 Ant 和 Maven 的优点,吸收了 Ant 中 task 的思想,然后把 Maven 的目录规范以及仓库思想也融合了进来,但允许用户自由的修改默认的规范(如:可随意修改源码目录),配置文件则采用 Groovy 语言来书写,Groovy 是一门可编程语言,配置文件本身就可以视为一份源代码,并最终交由 Gradle 来处理执行。

其实 Gradle 跟 Ant、Maven 等构建工具完成工作差不多,但 Gradle 更加强大,它不仅仅是一个构建工具,还是一个开发框架,这点我们将在后面的学习过程中具体体现。

在 Gradle 之前,Android 的项目构建工具是 Ant,用过 Eclipse 的同学应该都用过。 我们知道 Ant 是不支持自动去下载配置依赖 jar 的,这个坑就不提了。还有 Ant 的编译规则是基于 xml 的,用 xml 是很难描述类似这样不同条件的任务的:

if(){
    //如果条件成立,编译某文件
}else{
	//如果条件不成立,编译某文件
}

然后我们都知道出现了 Gradle,首先 Gradle 是支持自动下载的依赖包的,Gradle 脚本不是像传统的 xml 文件那样,而是一种基于 Groovy 的动态 DSL,而 Groovy 语言是一种基于 jvm 的动态语言。 基于这种设计,Gradle 支持我们像写脚本一样的去写项目的构建规则也就是开发插件。

总结

  1. Gradle 是一个构建工具,也是一个开发框架,基于 Groovy 语言。 我们可以通过 Groovy 语言去写自己的Gradle 插件,也可以去编写指定的脚本去改变构建规则。
  2. Android studio中 Gradle 之所以能够构建 Android 工程,是因为有基于 Android 的 Gradle 插件。

下面我们将从下面几个部分来学习:

  1. Gradle - 简介
  2. Gradle - Groovy Language
  3. Gradle - DSL
  4. Gradle - Android Plugin DSL
  5. Gradle - 插件开发
  6. Gradle - 插件发布

其他系列

更多文章:

这是我博客长期更新的项目,欢迎大家 Star。
https://github.com/jeanboydev/Android-ReadTheFuckingSourceCode

我的公众号

欢迎你「扫一扫」下面的二维码,关注我的公众号,可以接受最新的文章推送,有丰厚的抽奖活动和福利等着你哦!?

如果你有什么疑问或者问题,可以 点击这里 提交 issue,也可以发邮件给我 jeanboy@foxmail.com

同时欢迎你 Android技术进阶:386463747 来一起交流学习,群里有很多大牛和学习资料,相信一定能帮助到你!

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值