Utilisation d’Eclipse Temurin dans GitHub Actions

L’action actions/setup-java est la méthode recommandée pour installer Eclipse Temurin dans les workflows GitHub Actions. Elle gère le téléchargement, la mise en cache et la configuration du JDK sur le runner.

Utilisation de base

Pour configurer Eclipse Temurin dans un workflow, ajoutez l’étape suivante :

Note

Les versions d’actions indiquées dans ces exemples peuvent ne pas toujours refléter les dernières versions. Consultez les versions de actions/setup-java et les versions de actions/checkout pour les versions les plus récentes. Le projet Adoptium recommande d’épingler les actions sur des SHA de commit complets plutôt que sur des étiquettes de version pour une meilleure sécurité et reproductibilité.

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

La distribution doit être définie sur temurin et java-version spécifie quelle version majeure installer.

Tests avec plusieurs versions Java

Utilisez une stratégie de matrice pour tester votre projet avec plusieurs versions Java :

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

Mise en cache des dépendances

L’action setup-java intègre la prise en charge de la mise en cache des dépendances gérées par Maven, Gradle et sbt.

Mise en cache des dépendances Maven

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

Mise en cache des dépendances Gradle

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

Mise en cache des dépendances sbt

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

Exemple de workflow complet

Voici un workflow complet qui construit et teste un projet Maven avec Eclipse Temurin sur plusieurs versions Java :

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

Utilisation de la dernière version

Définissez check-latest: true pour toujours télécharger la version la plus récente disponible, plutôt que de vous fier à la version mise en cache sur le runner :

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

Note

Définir check-latest sur true a des implications en termes de performances car le téléchargement d’un JDK est plus lent que l’utilisation de versions mises en cache.

Installation de plusieurs JDK

Vous pouvez installer plusieurs versions de JDK dans un seul job. La dernière version configurée sera celle par défaut dans PATH :

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

Les autres versions Java sont accessibles via des variables d’environnement telles que JAVA_HOME_11_X64, JAVA_HOME_17_X64, etc.

edit icon

Aidez-nous à améliorer cette documentation !

Toutes les documentations Adoptium sont open source. Une erreur ou un point flou ?

Auteurs de la documentation
gdams
Join our Slack channel to discuss and reach out to maintainers.Join Slack