Skip to main content
我们经常发布文档更新,此页面的翻译可能仍在进行中。 有关最新信息,请访问英语文档
GitHub AE 目前处于受限版。

使用 Ant 构建和测试 Java

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

简介

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

必须在自托管运行程序上安装所需的软件。 有关自托管运行程序的详细信息,请参阅“托管您自己的运行器”。

先决条件

您应该熟悉 YAML 和 GitHub Actions 的语法。 有关详细信息,请参阅:

建议您对 Java 和 Ant 框架有个基本的了解。 有关详细信息,请参阅 Apache Ant 手册

使用 Ant 入门工作流程

GitHub 提供有 Ant 入门工作流程,适用于大多数基于 Ant 的 Java 项目。 有关详细信息,请参阅 Ant 入门工作流

要快速开始,您可以在创建新工作流程时选择预配置的 Ant 入门工作流程。 有关详细信息,请参阅“GitHub Actions 快速入门”。

也可以通过在存储库的 .github/workflows 目录中创建新文件来手动添加此工作流。

YAML
name: Java CI

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
      - name: Set up JDK 17
        uses: actions/setup-java@v3
        with:
          java-version: '17'
          distribution: 'temurin'
      - name: Build with Ant
        run: ant -noinput -buildfile build.xml

此工作流程执行以下步骤:

  1. checkout 步骤在运行器上下载存储库的副本。
  2. setup-java 步骤通过 Eclipse Adoptium 配置 Eclipse Temurin (Java) 17 JDK。
  3. “使用 Ant 构建”步骤以非交互模式运行 build.xml 中的默认目标。

在创建构建和测试工作流程时,默认入门工作流程是很好的起点,然后您可以自定义入门工作流程以满足项目的需求。

在其他操作系统上运行

入门工作流使用 GitHub 托管的 ubuntu-latest 运行器将作业配置为在 Linux 上运行。 可以更改 runs-on 键以在不同的操作系统上运行作业。 例如,您可以使用 GitHub 托管的 Windows 运行器。

runs-on: windows-latest

或者,您可以在 GitHub 托管的 macOS 运行器上运行。

runs-on: macos-latest

您还可以在 Docker 容器中运行作业,或者提供在自己的基础架构上运行的自托管运行器。 有关详细信息,请参阅“GitHub Actions 的工作流语法”。

指定 JVM 版本和架构

初学者工作流程将 PATH 设置为包含 OpenJDK 8,用于 x64 平台。 如果要使用不同的 Java 版本或面向不同的体系结构(x64x86),可以使用 setup-java 操作选择不同的 Java 运行时环境。

例如,要使用由 Adoptium 提供的 11 版本的 JDK,用于 x64 平台,可以使用 setup-java 操作并将 java-versiondistributionarchitecture 参数配置为 '11''adopt'x64

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

有关详细信息,请参阅 setup-java 操作。

构建和测试代码

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

入门工作流将运行“build.xml”文件中指定的默认目标。 默认目标通常设置为将类、运行测试和包类设置为其可分发格式,例如 JAR 文件。

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

YAML
steps:
  - uses: actions/checkout@v3
  - uses: actions/setup-java@v3
    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 操作上传该目录的内容。

YAML
steps:
  - uses: actions/checkout@v3
  - uses: actions/setup-java@v3
    with:
      java-version: '17'
      distribution: 'temurin'
  
  - run: ant -noinput -buildfile build.xml
  - uses: actions/upload-artifact@v3
    with:
      name: Package
      path: build/jar