构建工具的解析

  构建文件:构建稳健包含了构建所需的配置信息,定义外部依赖,还包含了以任务形式实现某个特殊目的的指令和他们的相互依赖关系。也称构建脚本

  构建的输入和输出:一个任务会接收一个输入,然后执行一系列步骤,最后产生一个输出。
  构建引擎:构建文件的一步步指令或规则集必须被翻译成构建工具可以理解的内部模型。构建引擎会在运行时处理构建文件,解析任务之间的依赖,设置好执行所需要的全部配置。

  依赖管理器:依赖管理器用于处理在build文件中生命的依赖定义,从工件仓库中解析它们,并使它们对项目可用。依赖通常是指外部依赖。该参股看就像是依赖的储藏所,通过标识符组织和描述他们。

  Gradle的DSL对GradleAPI的访问:

Gradle简介-风君雪科技博客

  一个构建脚本直接映射到Gradle API中Project类型的一个实例。在构建脚本中dependencies配置块触发project实例的dependencies()方法。

  Gradle通过暴露钩子(hook)到生命周期阶段,Gradle允许监控和配置构建脚本的执行行为。

  Gradle将工作单元描述成任务(task)。Gradle的标准DSL部分就是能够确切地定义任务,从编译到打包Java源代码。

  Gradle的开箱即用特性提供了两个配置块,允许定义依赖及远成仓库。

Gradle简介-风君雪科技博客

  Gradle支持通过制定任务的输入和输出进行增量性构建。

  自动化单元测试,集成测试和功能测试是构建过程的一部分。Gradle支持测试的并行执行。

  Gradle可以以守护进行模式运行。实际上Gradle命令会fork出一个守护进程,它不仅会执行你的构建,而且会持续地在后台进行。

  持续交付引入了部署管道的概念,也叫作构建管道。部署管道是一种将软件从版本控制部署到产品环境过程的技术实现。这个过程由4个阶段组成:

    提交阶段 –> 自动化验收测试阶段 –> 手动测试阶段 –> 发布阶段

  提交阶段:报告项目结束健康程度。这个阶段的工作是编译源代码,运行测试,执行代码分析和准备发布。

  自动化验收测试阶段:通过运行自动化测试判断功能性和非功能性需求是否得到满足。

  手动测试阶段:验证系统在实际的测试环境中可用。

  发布阶段:要么一打包方式将软件交付给终端用户,要么将软件部署到产品环境。

  每个Gradle构建都是以一个脚本开始的。默认的脚本的名字是build.gradle。当在shell中执行gradle命令时,Gradle会去寻找名字是build.gradle的文件。

  Gradle提供了任务组的概念,可以把它看作是多个task的集群。每个构建脚本会默认暴露Help tasks任务组。若某个task不属于一个任务组,那么它会显示在Other tasks中。

  $ gradle -q tasks -all //显示所有任务组及详细信息 

  Gradle支持以驼峰式的缩写在命令行上运行任务。