# Erstellen und Testen von Java mit Ant

Erfahren Sie, wie Sie einen CI-Workflow (Continuous Integration) in GitHub Actions erstellen und testen, um Ihr Java Projekt mit Ant zu erstellen und zu testen.

> \[!NOTE]
> Auf GitHub Enterprise Server gehostete Runner werden aktuell nicht auf GitHub unterstützt.

## Einführung

In diesem Handbuch erfahren Sie, wie Sie einen Workflow erstellen, der eine kontinuierliche Integration (CI) für Ihr Java Projekt mithilfe des Ant-Buildsystems durchführt. Der Workflow, den Du erstellst, zeigt Dir, wenn Commits zu einem Pull-Request zu Build- oder Testfehlern für deinen Standard-Zweig führen. Dieser Ansatz kann dazu beitragen, dass Dein Code immer brauchbar ist. Du kannst Deinen CI-Workflow so erweitern, dass er Artefakte von einem Workflow-Lauf hochlädt.

Von GitHub gehostete Runner haben einen Tools-Cache mit vorinstallierter Software, darunter Java Development Kits (JDKs) und Ant. Eine Liste der Software und der vorinstallierten Versionen für JDK und Ant findest du unter [Von GitHub gehostete Runner](/de/enterprise-server@3.22/actions/concepts/runners/github-hosted-runners#preinstalled-software-for-github-owned-images).

## Voraussetzungen

Sie sollten mit YAML und der Syntax für GitHub Actions vertraut sein. Weitere Informationen finden Sie unter:

* [Workflowsyntax für GitHub Actions](/de/enterprise-server@3.22/actions/reference/workflows-and-actions/workflow-syntax)
* [Schreiben von Workflows](/de/enterprise-server@3.22/actions/how-tos/write-workflows)

Es wird empfohlen, ein grundlegendes Verständnis von Java und dem Ant-Framework zu haben. Weitere Informationen findest du im [Handbuch zu Apache Ant](https://ant.apache.org/manual/).

### Verwenden von selbstgehosteten Runnern in GitHub Enterprise Server

Wenn du Setupaktionen (z. B. `actions/setup-LANGUAGE`) in GitHub Enterprise Server mit selbst gehosteten Runnern verwendest, musst du eventuell den Toolscache für Runner ohne Internetzugriff einrichten. Weitere Informationen finden Sie unter [Einrichten des Toolcaches auf selbstgehosteten Runnern ohne Internetzugriff](/de/enterprise-server@3.22/admin/managing-github-actions-for-your-enterprise/managing-access-to-actions-from-githubcom/setting-up-the-tool-cache-on-self-hosted-runners-without-internet-access).

## Verwenden einer Ant-Workflowvorlage

Fügen Sie für einen schnellen Einstieg dem Verzeichnis `.github/workflows` Ihres Repositorys eine Workflowvorlage hinzu.

GitHubstellt eine Workflowvorlage für Ant bereit, die für die meisten Java mit Ant-Projekten funktionieren sollte. In den nachfolgenden Abschnitten dieser Anleitung finden Sie Beispiele dafür, wie diese Workflowvorlage angepasst werden kann.

1. Navigieren Sie auf GitHub zur Hauptseite des Repositorys.

2. Klicke unter dem Repositorynamen auf **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-play" aria-label="play" role="img"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg> Actions**.

   ![Screenshot: Registerkarten für das Repository „github/docs“. Die Registerkarte „Aktionen“ ist mit einem orangefarbenen Rahmen hervorgehoben.](/assets/images/help/repository/actions-tab-global-nav-update.png)

3. Wenn du bereits über einen Workflow im Repository verfügst, klicke auf **Neuer Workflow**.

4. Auf der Seite „Workflow auswählen“ wird eine Auswahl empfohlener Workflowvorlagen angezeigt. Suchen Sie nach "Java mit Ant".

5. Klicken Sie im Workflow "Java mit Ant" auf **Configure**.

   Wenn Sie die Workflowvorlage "Java mit Ant" nicht finden, kopieren Sie den folgenden Workflowcode in eine neue Datei namens `ant.yml` im Verzeichnis `.github/workflows` Ihres Repositorys.

   ```yaml copy
   name: Java CI

   on:
     push:
       branches: [ $default-branch ]
     pull_request:
       branches: [ $default-branch ]

   jobs:
     build:
       runs-on: ubuntu-latest

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

6. Bearbeiten Sie den Workflow nach Bedarf. Ändern Sie beispielsweise die Java-Version.

7. Klicke auf **Änderungen übernehmen**.

### Spezifizieren der Java-Version und -Architektur

Die Workflowvorlage richtet `PATH` so ein, dass OpenJDK 8 für die x64-Plattform enthalten ist. Wenn du eine andere Java-Version verwenden willst oder auf eine andere Architektur (`x64` oder `x86`) abzielen möchtest, kannst du die `setup-java`-Aktion verwenden, um eine andere Java-Laufzeitumgebung auszuwählen.

Um etwa Version 11 des JDK zu verwenden, das von Adoptium für die x64-Plattform bereitgestellt wird, kannst du die Aktion `setup-java` verwenden und die Parameter `java-version`, `distribution` und `architecture` für `'11'`, `'temurin'` und `x64` konfigurieren.

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

Weitere Informationen findest du unter der Aktion [`setup-java`](https://github.com/actions/setup-java).

## Deinen Code bauen und testen

Du kannst die gleichen Befehle verwenden, die Du auch lokal verwendest, um Deinen Code zu bauen und zu testen.

Die Workflow-Vorlage wird das Standardziel ausführen, das in Ihrer `build.xml` Datei angegeben ist. Dein Standard-Ziel wird normalerweise eingestellt, um Klassen zu bauen, Tests durchzuführen und Klassen in ihr verteilbares Format (z.B . eine JAR-Datei) zu paketieren.

Wenn Du zum Bauen Deines Projekts andere Befehle verwenden oder ein anderes Ziel auszuführen möchtest, kannst Du dies angeben. Du kannst beispielsweise das `jar`-Ziel ausführen, das in deiner Datei `build-ci.xml` konfiguriert ist.

```yaml copy
steps:
  - uses: actions/checkout@v6
  - 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
```

## Workflow-Daten als Artefakte paketieren

Nachdem ihr Build erfolgreich war und Ihre Tests bestanden wurden, sollten Sie die resultierenden Java Pakete als Buildartefakt hochladen. Dies speichert die gebauten Pakete als Teil der Workflow-Ausführung und ermöglicht Dir, sie herunterzuladen. Artefakte können Dir helfen, Pull-Requests in deiner lokalen Umgebung zu testen und zu debuggen, bevor sie zusammengeführt werden („merge“). Weitere Informationen finden Sie unter [Speichern und Freigeben von Daten mit Workflowartefakten](/de/enterprise-server@3.22/actions/tutorials/store-and-share-data).

Ant erstellt normalerweise Ausgabedateien wie JAR-, EAR- oder WAR-Dateien im Verzeichnis `build/jar`. Du kannst den Inhalt dieses Verzeichnisses mit der Aktion `upload-artifact` hochladen.

```yaml copy
steps:
  - uses: actions/checkout@v6
  - uses: actions/setup-java@v4
    with:
      java-version: '17'
      distribution: 'temurin'

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