Skip to content

1. 关于 Gradle

什么是 Gradle

Gradle 是一个开源的构建自动化工具,足够灵活,可以构建几乎任何类型的软件。Gradle 几乎没有对你试图构建的东西或如何构建它做出任何假设。这使得Gradle特别灵活

设计

Gradle的设计基于以下基本原则:

高性能

Gradle 只在输入或输出已更改而需要执行的时候运行,从而避免了不必要的工作。Gradle 使用各种缓存来重用以前构建的输出。使用共享构建缓存,甚至可以重用来自其他计算机的输出。

Jvm 支持

gradle 运行在 jvm 上, 是对 java 友好的工具

约定

Gradle 通过约定常见的类型使项目易于构建。插件设置合理的默认值以保持构建脚本的最小化。但是这些约定并不会限制你, 你可以在构建中配置设置、添加自己的任务并进行许多其他自定义。

扩展性

大多数构建都有特殊需求,需要自定义构建逻辑。你可以很容易地扩展 Gradle,用自定义任务和插件来提供你自己的构建逻辑。以Android构建为例:它们添加了许多新的构建概念,如渠道和构建类型。

IDE 支持

主流的 IDE 提供了与 Gradle 构建的交互,包括Android Studio、IntelliJ IDEA、Eclipse、VSCode和NetBeans。Gradle还可以生成将项目加载到 Visual Studio 提供所需的解决方案文件。

洞察力

Build Scan 提供了关于构建的大量信息,你可以使用这些信息来识别问题。可以使用构建扫描来识别与构建性能有关的问题,甚至可以共享它们以获得调试帮助

技术点

项目

项目是 Gradle 构建的东西。项目包含一个构建脚本,该脚本是位于项目根目录中的文件,通常名为 build.gradlebuild.gradle.kts 。构建脚本为该项目定义任务、依赖项、插件和其他配置。单个构建可以包含一个或多个项目,每个项目可以包含它们自己的子项目

任务

任务包含不同的逻辑来执行不同的工作: 编译代码运行测试或者部署软件, 在大多数场景中,将使用已存在任务。Gradle 提供了实现许多常见构建系统需求的任务,比如可以运行测试的内置 Java 测试任务。插件提供了更多类型的任务 任务本身包括:

  • 操作:执行某些操作的工作片段,如复制文件或编译源代码
  • 输入:操作使用或操作的值、文件和目录
  • 输出:操作修改或生成的文件和目录

插件

插件允许你在任务、文件和依赖项配置之外的构建中引入新概念。例如,大多数语言插件将 source sets(源码集合) 的概念添加到构建中。 插件提供了跨多个项目重用逻辑和配置的方法。有了插件,你可以一次编写一个任务,然后在多个版本中使用它。或者,您可以将常见配置(如日志、依赖项和版本管理) 存储在一个位置。这减少了构建脚本中的重复。使用插件对构建过程进行适当的建模可以极大地提高易用性和效率。

构建语句

Gradle在构建生命周期的三个构建阶段评估和执行构建脚本

初始化

设置生成的环境并确定哪些项目将参与生成

配置

构造和配置生成的任务图。根据用户要运行的任务确定需要运行的任务以及运行的顺序

执行

运行在配置阶段结束时选择的任务

构建

构建是 Gradle 项目中一组任务的执行。可以通过命令行界面(CLI)或通过指定任务选择器在IDE中运行构建。Gradle 配置构建并选择 要运行的任务。Gradle根据请求的任务及其依赖项运行最小的完整任务集


说明

创建时间: 2023-11-19 19:27:00 , 最后编辑于 2023-11-19 21:38:00