Gradle学习(一)
欢迎来到我的博客来阅读我写的文章,希望我写的文章能帮助到大家!
看到错误什么的欢迎指出来,有不足请补充!
Gradle的入门
1. 为什么学习Gradle
- Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。
- Gradle是一个优秀的构建系统和构建工具,它允许通过插件创建自定义的构建逻辑。
2. Gradle的特点
我们基于Gradle以下的一些特点而选择了它:
- 采用了Domain Specific Language(DSL语言) 来描述和控制构建逻辑。
- 构建文件基于Groovy,并且允许通过混合声明DSL元素和使用代码来控制DSL元素以控制自定义的构建逻辑。
- 支持Maven或者Ivy的依赖管理。
- 非常灵活。允许使用最好的实现,但是不会强制实现的方式。
- 插件可以提供自己的DSL和API以供构建文件使用。
- 良好的API工具供IDE集成。
总而言之利用 Gradle 的灵活性,您可以在不修改应用核心源文件的情况下实现以上所有目的。 Android Studio 构建文件以 build.gradle 命名。 这些文件是纯文本文件,使用适用于 Gradle 的 Android 插件提供的元素以 Groovy 语法配置构建。 每个项目有一个用于整个项目的顶级构建文件,以及用于各模块的单独的模块层级构建文件。在导入现有项目时,Android Studio 会自动生成必要的构建文件。
3. 常见的项目构建工具
- Ant: 2000年Apache推出的纯Java编写的构建工具,通过.xml文件管理项目。
优点:使用灵活,速度块(快于Gradle和Maven)
缺点:Ant没有强加任何编码约定的项目目录解构,开发人员需要编写繁杂的.xml文件构建指令,对开发人员是一种挑战。 - Maven: 2004年Apache组织推出的再次使用.xml文件管理项目的构建工具。
优点:遵循一套约定大于配置的项目目录结构,使用统一的GAV坐标进行依赖管理,侧重于包管理。
缺点:项目构建过程僵化,配置文件编写不够灵活,不方便自定义组件,构建速度慢于Gradle。 - Gradle: 2012年Goole推出基于Groovy语言的全新项目构建工具,集合了Ant和Maven各自的优势。
优点:集Ant脚本灵活 + Maven约定大于配置的项目目录优势,支持多种远程仓库和插件,侧重于大项目构建。
劣势:脚本灵活,版本兼容性差等。
自动化构建工具对比 | Ant | Maven | Gradel |
---|---|---|---|
构建性能 | 最高 | 最低 | 居中 |
仓库 | 开发者自己处理 | Maven仓库 | 支持多种远程仓库 |
依赖管理 | ivy依赖 | GAV坐标管理 | GNV坐标管理 |
插件支持 | 实现方便 | 实现较难 | 实现方便 |
遵循特定目录结构 | 不遵循 | 遵循Maven目录结构 | 同Maven |
配置文件 | xml文件最为繁琐 | xml文件 | 代码脚本,便于写业务逻辑 |
侧重点 | 小型项目结构 | 项目包管理 | 大型项目结构 |
目前地位 | 使用较少 | 目前主流 | 未来趋势(Spring家族) |