欢迎来到我的博客来阅读我写的文章,希望我写的文章能帮助到大家!
看到错误什么的欢迎指出来,有不足请补充!

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家族)