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

构建 Gradle 项目并不仅仅限于开发人员的机器。 持续集成(CI) 是一种由来已久的实践,用于为提交给版本控制的每个单独更改运行构建,以收紧反馈循环。

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

你需要什么

  • 文本编辑器

  • 命令提示符

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

设置典型项目

例如,本指南将重点关注基于 Java 的项目。更具体地说,是一个用 Java 编写并使用Spek进行测试的 Gradle 插件。首先,我们将在本地计算机上设置项目,然后再在 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 配置文件中选择项目。从仪表板激活存储库后,每次提交都可以构建项目。

启用项目
配置构建扫描对于 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 紧密集成,成为一等公民。