使用 Gradle 构建缓存,顶级工程团队能够将 CI 构建时间缩短高达 90%。在此注册我们的构建缓存培训课程,了解您的团队如何实现类似的结果。

构建 Gradle 项目并不止于开发人员的机器。 持续集成 (CI) 已经成为一种长期建立的实践,用于为提交到版本控制的每一个更改运行构建,以缩短反馈循环。

在本指南中,我们将讨论如何为一个典型的 Gradle 项目配置 Travis CI

你需要什么

  • 一个文本编辑器

  • 一个命令提示符

  • Java 开发工具包 (JDK),版本 1.8 或更高版本

设置一个典型的项目

例如,本指南将重点介绍一个基于 Java 的项目。更具体地说,是用 Java 编写的 Gradle 插件,并使用 Spek 进行测试。首先,我们将把项目设置在你的本地机器上,然后再介绍在 CI 上执行相同步骤。

只需按照以下步骤操作

克隆 Gradle 站点插件 仓库

$ git clone https://github.com/gradle/gradle-site-plugin.git
Cloning into 'gradle-site-plugin'...
$ cd gradle-site-plugin

构建项目

作为 Java 项目的开发人员,你通常需要编译源代码、运行测试并组装 JAR 文件。Gradle 插件也不例外。以下命令可以实现这一点

$ ./gradlew build

BUILD SUCCESSFUL
14 actionable tasks: 14 executed

该项目在仓库中提供 Gradle Wrapper。对于任何 Gradle 项目来说,这都是一个推荐的做法,因为它可以让你的项目在 CI 上构建,而无需安装 Gradle 运行时。

构建扫描集成

示例项目支持生成 构建扫描。使用命令行选项 --scan 运行构建会在控制台中呈现一个链接。

$ ./gradlew build --scan
Publishing build scan...
https://gradle.com/s/7mtynxxmesdio

以下部分将描述如何借助 Travis CI 构建项目。

配置 Travis CI

Travis CI 是一款免费的基于云的 CI 解决方案提供商,使其成为开源项目的绝佳选择。只要项目托管在 GitHub 上作为公共仓库,你就可以构建任何项目。Travis CI 没有提供内置选项来后处理构建产生的工件,例如托管 JAR 文件或 HTML 测试报告。你必须使用外部服务(如 S3)来 传输文件

创建配置文件

Travis CI 要求你将一个 配置文件 与你的源代码一起检入,该文件名为 .travis.yml。此文件包含构建项目的全部相关说明。

以下配置文件告诉 Travis CI 使用 JDK 8 构建 Java 项目,跳过通常的 默认执行步骤,并使用 Wrapper 运行 Gradle 构建。

language: java
install: skip

os: linux
dist: trusty
jdk: oraclejdk8

script:
  - ./gradlew build --scan -s

从 Travis CI 个人资料中选择项目。从仪表板激活仓库后,项目就可以在每次提交时进行构建。

Enabling a project
配置 构建扫描 在像 Travis CI 这样的云 CI 系统上特别有用,因为它具有其他环境和测试结果信息,这些信息很难通过其他方式获得。

启用下载的工件的缓存

Gradle 的依赖管理机制从二进制仓库解析声明的模块及其相应的工件。下载后,文件将从缓存中重复使用。您需要明确告诉 Travis CI 您想要 存储和使用 Gradle 缓存和 Wrapper 用于构建的后续调用。

before_cache:
  - rm -f  $HOME/.gradle/caches/modules-2/modules-2.lock
  - rm -fr $HOME/.gradle/caches/*/plugin-resolution/

cache:
  directories:
    - $HOME/.gradle/caches/
    - $HOME/.gradle/wrapper/

进一步阅读

您可以通过以下资源了解有关高级 Travis CI 用法的更多信息

总结

在 CI 上执行 Gradle 构建只需几个步骤即可设置和配置。快速反馈的好处不言而喻。如果您没有使用 Travis CI,没问题,许多 CI 产品将 Gradle 紧密集成,作为一等公民。