第 2 章 Gradle下一代构建工具
本章内容包括:
-
了解 Gradle 与其他构建工具的比较
-
描述 Gradle 引人注目的功能集
-
安装 Gradle
-
编写和执行简单的 Gradle 脚本
-
在命令行上运行 Gradle
多年来,构建都具有编译和打包软件的简单要求。 但现代软件开发的格局已经发生了变化,构建自动化的需求也发生了变化。
如今,项目涉及大型且多样化的软件堆栈,包含多种编程语言,并应用广泛的测试策略。 随着敏捷实践的兴起,构建必须支持代码的早期集成以及频繁且轻松地交付到测试和生产环境。
现有的构建工具始终无法以简单但可定制的方式实现这些目标。 有多少次您在查看 XML 来弄清楚构建如何工作时目光呆滞? 为什么不能更容易地将自定义逻辑添加到您的构建中呢? 很多时候,当添加到构建脚本时,您无法摆脱实施解决方法或黑客攻击的感觉。 我感受到你的痛苦。 必须有一种更好的方法以一种富有表现力和可维护的方式来做这些事情。 有一个——它叫 Gradle。
Gradle 是基于 JVM 的构建工具的下一个发展阶段。 它借鉴了 Ant 和 Maven 等成熟工具的经验教训,并将它们的最佳想法提升到了一个新的水平。 遵循按惯例构建的方法,Gradle 允许使用以 Groovy 而不是 XML 实现的强大且富有表现力的领域特定语言 (DSL) 对问题域进行声明式建模。 由于 Gradle 是 JVM 原生的,因此它允许您用您最熟悉的语言(无论是 Java 还是 Groovy)编写自定义逻辑。
在 Java 世界中,可用的库和框架数量多得令人难以置信。 依赖关系管理用于自动从存储库下载这些工件并使它们可供您的应用程序代码使用。 吸取了现有依赖管理解决方案的缺点后,Gradle 提供了自己的实现。 它不仅具有高度可配置性,而且还努力与现有的依赖管理基础设施(如 Maven 和 Ivy)尽可能兼容。 Gradle 管理依赖项的能力不仅限于外部库。 随着项目规模和复杂性的增加,您需要将代码组织成具有明确定义职责的模块。 Gradle 为定义和组织多项目构建以及项目之间的依赖关系建模提供了强大的支持。
我知道,所有这些听起来都很有希望,但你仍然坚持你的旧版本。 Gradle 不会让您望尘莫及,而是让迁移变得容易。 Ant 随运行时一起提供,因此不需要任何额外的设置。 Gradle 使团队能够应用他们积累的 Ant 知识和投资来构建基础设施。 想象一下直接在 Gradle 构建脚本中使用现有 Ant 任务和脚本的可能性。 遗留的构建逻辑可以被重用或逐渐迁移。 Gradle 会为您完成繁重的工作。
要开始使用 Gradle,您只需充分了解 Java 编程语言即可。 如果您是项目自动化的新手或者以前没有使用过构建工具,那么第 1 章是一个很好的起点。 本书将教您如何有效地使用 Gradle 来构建和交付实际项目。
在本章中,我们将比较现有的 JVM 语言构建工具和 Gradle 提供的功能。 稍后,您将了解 Gradle 如何帮助您在持续交付部署管道的上下文中自动化软件交付流程。 为了初步体验使用 Gradle 的感觉,您将安装运行时,编写一个简单的构建脚本,然后在命令行上运行它。 与我一起探索 Gradle 的世界,踏上激动人心的旅程。