Verwendung von Eclipse Temurin in GitHub Actions

Die actions/setup-java-Action ist der empfohlene Weg, Eclipse Temurin in GitHub Actions-Workflows zu installieren. Sie übernimmt das Herunterladen, Caching und Konfigurieren des JDK auf dem Runner.

Grundlegende Verwendung

Um Eclipse Temurin in einem Workflow einzurichten, fügen Sie den folgenden Schritt hinzu:

Note

Die in diesen Beispielen gezeigten Action-Versionen spiegeln möglicherweise nicht immer die neuesten Releases wider. Prüfen Sie die actions/setup-java Releases und actions/checkout Releases für die aktuellsten Versionen. Das Adoptium-Projekt empfiehlt, Actions an vollständige Commit-SHAs statt an Versions-Tags zu pinnen, um Sicherheit und Reproduzierbarkeit zu verbessern.

steps:
  - uses: actions/checkout@v6
  - uses: actions/setup-java@v5
    with:
      distribution: 'temurin'
      java-version: '25'
  - run: java --version

Die distribution muss auf temurin gesetzt werden und java-version gibt an, welche Hauptversion installiert werden soll.

Testen mit mehreren Java-Versionen

Verwenden Sie eine Matrix-Strategie, um Ihr Projekt mit mehreren Java-Versionen zu testen:

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        java: [ '11', '17', '25' ]
    name: Java ${{ matrix.java }}
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-java@v5
        with:
          distribution: 'temurin'
          java-version: ${{ matrix.java }}
      - run: java --version

Abhängigkeiten cachen

Die setup-java-Action hat integrierte Unterstützung für das Caching von Abhängigkeiten, die von Maven, Gradle und sbt verwaltet werden.

Maven-Abhängigkeiten cachen

steps:
  - uses: actions/checkout@v6
  - uses: actions/setup-java@v5
    with:
      distribution: 'temurin'
      java-version: '25'
      cache: 'maven'
  - run: mvn -B package

Gradle-Abhängigkeiten cachen

steps:
  - uses: actions/checkout@v6
  - uses: actions/setup-java@v5
    with:
      distribution: 'temurin'
      java-version: '25'
      cache: 'gradle'
  - run: ./gradlew build

sbt-Abhängigkeiten cachen

steps:
  - uses: actions/checkout@v6
  - uses: actions/setup-java@v5
    with:
      distribution: 'temurin'
      java-version: '25'
      cache: 'sbt'
  - run: sbt package

Vollständiges Workflow-Beispiel

Hier ist ein vollständiger Workflow, der ein Maven-Projekt mit Eclipse Temurin über mehrere Java-Versionen hinweg baut und testet:

name: Build and Test

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

permissions:
  contents: read

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        java: [ '11', '17', '25' ]
    name: Build with Java ${{ matrix.java }}
    steps:
      - uses: actions/checkout@v6
      - name: Set up JDK ${{ matrix.java }}
        uses: actions/setup-java@v5
        with:
          distribution: 'temurin'
          java-version: ${{ matrix.java }}
          cache: 'maven'
      - name: Build with Maven
        run: mvn -B package --file pom.xml

Die neueste Version verwenden

Setzen Sie check-latest: true, um immer die aktuellste verfügbare Version herunterzuladen, anstatt sich auf die zwischengespeicherte Version auf dem Runner zu verlassen:

- uses: actions/setup-java@v5
  with:
    distribution: 'temurin'
    java-version: '25'
    check-latest: true

Note

Das Setzen von check-latest auf true hat Auswirkungen auf die Leistung, da das Herunterladen eines JDK langsamer ist als die Verwendung zwischengespeicherter Versionen.

Mehrere JDKs installieren

Sie können mehrere JDK-Versionen in einem einzelnen Job installieren. Die zuletzt konfigurierte Version wird als Standard im PATH gesetzt:

steps:
  - uses: actions/setup-java@v5
    with:
      distribution: 'temurin'
      java-version: |
        11
        17
        25

Auf andere Java-Versionen kann über Umgebungsvariablen wie JAVA_HOME_11_X64, JAVA_HOME_17_X64 usw. zugegriffen werden.

edit icon

Hilf uns, diese Dokumentation zu verbessern!

Alle Adoptium-Dokumentationen sind Open Source. Etwas falsch oder unklar?

Dokumentations-Autoren
gdams
Join our Slack channel to discuss and reach out to maintainers.Join Slack