Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Building and testing Java with Ant

You can create a continuous integration (CI) workflow in GitHub Actions to build and test your Java project with Ant.

Введение

В этом руководстве показано, как создать рабочий процесс, который выполняет непрерывную интеграцию (CI) для вашего проекта Java с помощью системы сборки Ant. Создаваемый рабочий процесс позволит увидеть, когда фиксации в запросе на вытягивание вызывают сбои в сборке или тестировании ветви по умолчанию; этот подход поможет убедиться, что ваш код всегда работоспособен. Можно расширить рабочий процесс CI, чтобы передать артефакты через выполнение рабочего процесса.

Средства выполнения, размещенные на GitHub, имеют кэш средств с предварительно установленным программным обеспечением, включающим в себя комплекты SDK для Java (JDK) и Ant. Список программного обеспечения и предварительно установленных версий для JDK и Ant см. в разделе About GitHub-hosted runners.

Предварительные требования

Требуются знания YAML и синтаксиса GitHub Actions. Дополнительные сведения см. в разделе:

Рекомендуется иметь базовое представление о Java и платформе Ant. Дополнительные сведения см. в руководстве по Apache Ant.

Использование начального рабочего процесса Ant

GitHub предоставляет начальный рабочий процесс Ant, который будет работать для большинства проектов Java на базе Ant. Дополнительные сведения см. в разделе Начальный рабочий процесс Ant.

Чтобы быстро приступить к работе, при создании нового рабочего процесса можно выбрать предварительно настроенный начальный рабочий процесс Ant. Дополнительные сведения см. в разделе Quickstart for 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 Temurin (Java) JDK 17 от Eclipse Adoptium.
  3. На шаге "Сборка с помощью Ant" целевой объект по умолчанию запускается в build.xml в неинтерактивном режиме.

Начальные рабочие процессы по умолчанию — это отличные отправные точки при создании рабочего процесса сборки и тестирования, а также начальный рабочий процесс можно настроить в соответствии с потребностями проекта.

Выполнение заданий в другой операционной системе

Начальный рабочий процесс настраивает задания для запуска в Linux с помощью размещенных в GitHub средств выполнения ubuntu-latest. Можно изменить ключ runs-on для выполнения заданий в другой операционной системе. Например, можно использовать размещенные в GitHub средства выполнения Windows.

runs-on: windows-latest

Кроме этого, можно выполнять задания на размещенных в GitHub средствах выполнения macOS.

runs-on: macos-latest

Можно также выполнять задания в контейнерах Docker или предоставить локальное средство выполнения, которое выполняется в собственной инфраструктуре. Дополнительные сведения см. в разделе Workflow syntax for GitHub Actions.

Указание версии и архитектуры JVM

Начальный рабочий процесс настраивает PATH, чтобы содержать OpenJDK 8 для платформы x64. Если вы хотите использовать другую версию Java или выбрать другую архитектуру (x64 или x86), можно использовать действие setup-java для выбора другой среды выполнения Java.

Например, чтобы использовать JDK версии 11, предоставляемой Adoptium для платформы x64, можно выполнить действие setup-java и установить параметры java-version,distribution и architecture на '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.

Если вы используете разные команды для сборки проекта или хотите выполнить другой целевой объект, это можно указать. Например, может понадобиться выполнить целевой объект jar, настроенный в файле _build-ci.xml_.

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 в виде артефакта сборки. Полученные пакеты будут храниться как часть выполнения рабочего процесса и их можно будет скачать. Артефакты помогут вам протестировать и отладить запросы на вытягивание в локальной среде до их слияния. Дополнительные сведения см. в разделе Storing workflow data as artifacts.

Как правило, Ant создает выходные файлы, такие как JAR, EAR или WAR, в каталоге build/jar. Содержимое этого каталога можно передать с помощью действия 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