跳到主要内容

使用 Ant 构建和测试 Java

您可以在 GitHub Actions 中创建一个持续集成 (CI) 工作流,以使用 Ant 构建和测试您的 Java 项目。

简介

本指南介绍如何创建一个工作流,使用 Ant 构建系统为您的 Java 项目执行持续集成 (CI)。您创建的工作流将使您能够看到拉取请求的提交何时导致针对默认分支的构建或测试失败;这种方法可以帮助确保您的代码始终保持健康。您可以扩展 CI 工作流以上传工作流运行的工件。

GitHub 托管运行器拥有一个包含预安装软件的工具缓存,其中包括 Java 开发工具包 (JDK) 和 Ant。有关 JDK 和 Ant 的软件和预安装版本的列表,请参阅“使用 GitHub 托管运行器”。

前提条件

您应该熟悉 YAML 和 GitHub Actions 的语法。更多信息,请参阅

我们建议您具备 Java 和 Ant 框架的基础知识。更多信息,请参阅 Apache Ant 手册

使用 Ant 工作流模板

要快速入门,请将工作流模板添加到存储库的 .github/workflows 目录中。

GitHub 提供了一个适用于大多数使用 Ant 的 Java 项目的 Ant 工作流模板。本指南后续部分将举例说明如何自定义此工作流模板。

  1. 在 GitHub 上,导航到存储库的主页。

  2. 在您的存储库名称下,单击 Actions.

    Screenshot of the tabs for the "github/docs" repository. The "Actions" tab is highlighted with an orange outline.

  3. 如果您已经在存储库中拥有工作流,请单击**新建工作流**。

  4. “选择工作流”页面显示推荐的工作流模板列表。搜索“使用 Ant 的 Java”。

  5. 在“使用 Ant 的 Java”工作流上,单击**配置**。

  6. 根据需要编辑工作流。例如,更改 Java 版本。

  7. 单击**提交更改**。

    ant.yml 工作流文件将添加到存储库的 .github/workflows 目录中。

指定 Java 版本和架构

工作流模板将 PATH 设置为包含适用于 x64 平台的 OpenJDK 8。如果您想使用其他版本的 Java,或针对其他架构(x64x86),可以使用 setup-java action 来选择不同的 Java 运行时环境。

例如,要对 x64 平台使用 Adoptium 提供的 JDK 11 版本,您可以使用 setup-java action 并将 java-versiondistributionarchitecture 参数分别配置为 '11''temurin'x64

YAML
steps:
  - uses: actions/checkout@v4
  - name: Set up JDK 11 for x64
    uses: actions/setup-java@v4
    with:
      java-version: '11'
      distribution: 'temurin'
      architecture: x64

更多信息,请参阅 setup-java action。

构建和测试您的代码

您可以使用与本地构建和测试代码相同的命令。

工作流模板将运行您的 build.xml 文件中指定的默认目标。您的默认目标通常设置为构建类、运行测试并将类打包到其可分发格式(例如 JAR 文件)中。

如果您使用不同的命令来构建项目,或者您想运行不同的目标,您可以指定这些命令。例如,您可能想要运行 _build-ci.xml_ 文件中配置的 jar 目标。

YAML
steps:
  - uses: actions/checkout@v4
  - uses: actions/setup-java@v4
    with:
      java-version: '17'
      distribution: 'temurin'
  - name: Run the Ant jar target
    run: ant -noinput -buildfile build-ci.xml jar

将工作流数据打包为工件

构建成功且测试通过后,您可能希望将生成的 Java 包作为构建工件上传。这会将构建的包存储为工作流运行的一部分,并允许您下载它们。工件可以帮助您在合并拉取请求之前在本地环境中测试和调试它们。更多信息,请参阅“存储和共享工作流数据”。

Ant 通常会在 build/jar 目录中创建 JAR、EAR 或 WAR 等输出文件。您可以使用 upload-artifact action 上传该目录的内容。

YAML
steps:
  - uses: actions/checkout@v4
  - uses: actions/setup-java@v4
    with:
      java-version: '17'
      distribution: 'temurin'

  - run: ant -noinput -buildfile build.xml
  - uses: actions/upload-artifact@v4
    with:
      name: Package
      path: build/jar