Partager via


Générer des applications Java

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Utilisez Azure Pipelines pour automatiser la génération, le test et le déploiement d’applications Java. Cet article explique comment configurer un pipeline pour les projets Java à l’aide d’outils tels que Maven, Gradle ou Ant. Vous allez également apprendre à déployer votre application sur des services Azure comme App Service, Functions ou Kubernetes.

Utilisez un pipeline pour :

Si vous travaillez sur des projets Android, consultez Générer, tester et déployer des applications Android.

Prérequis

Produit Exigences
Azure DevOps - Un projet Azure DevOps .
- Possibilité d’exécuter des pipelines sur des agents hébergés par Microsoft. Vous pouvez acheter un travail parallèle ou demander un niveau gratuit.
- Connaissance de base de YAML et d’Azure Pipelines. Pour plus d’informations, consultez Créer votre premier pipeline.
- Autorisations :
     - Pour créer un pipeline : vous devez être dans le groupe Contributeurs et le groupe doit avoir l'autorisation Créer un pipeline de construction définie sur Autoriser. Les membres du groupe Administrateurs de projet peuvent gérer les pipelines.
    - Pour créer des connexions de service : vous devez avoir le rôle Administrateur ou Créateur pour les connexions de service.
Lien avec GitHub - Un compte GitHub .
- Connexion de service GitHub pour autoriser Azure Pipelines.
Microsoft Azure Un abonnement Azure.
Produit Exigences
Azure DevOps - Un projet Azure DevOps .
- Un agent auto-hébergé. Pour en créer un, consultez les agents auto-hébergés.
- Connaissance de base de YAML et d’Azure Pipelines. Pour plus d’informations, consultez Créer votre premier pipeline.
- Autorisations :
    - Pour créer un pipeline : vous devez être dans le groupe Contributeurs et le groupe doit avoir l'autorisation Créer un pipeline de construction définie sur Autoriser. Les membres du groupe Administrateurs de projet peuvent gérer les pipelines.
    - Pour créer des connexions de service : vous devez avoir le rôle Administrateur ou Créateur pour les connexions de service.
Lien avec GitHub - Un compte GitHub .
- Connexion de service GitHub pour autoriser Azure Pipelines.
Microsoft Azure Un abonnement Azure.

Créer un référentiel GitHub

Fork le référentiel suivant sur votre compte GitHub :

https://github.com/MicrosoftDocs/pipelines-java

Créer un pipeline

  1. Connectez-vous à votre organisation Azure DevOps et accédez à votre projet.

  2. Accédez à Pipelines, puis sélectionnez Nouveau pipeline ou Créer un pipeline si vous créez le premier pipeline du projet.

  3. Suivez les étapes de l’Assistant, en sélectionnant GitHub comme emplacement de votre code source. Vous serez peut-être redirigé vers GitHub pour vous connecter. Si c’est le cas, entrez vos informations d’identification GitHub.

  4. Sélectionnez votre dépôt. Vous serez peut-être redirigé vers GitHub pour pouvoir installer l’application Azure Pipelines. Si c’est le cas, sélectionnez Approuver & installer pour continuer.

  5. Lorsque vous voyez l’onglet Configurer votre pipeline, sélectionnez Maven, Gradle ou Ant en fonction de la façon dont vous souhaitez générer votre code.

  6. Un azure-pipelines.yml fichier contenant votre définition de pipeline est créé dans votre référentiel et ouvert dans l’éditeur YAML. Vous pouvez personnaliser le pipeline en ajoutant d’autres tâches ou en modifiant les tâches existantes. Pour plus d’informations sur les tâches de génération, consultez Générer votre code.

  7. Une fois que vous avez terminé de modifier le azure-pipelines.yml, sélectionnez Enregistrer et exécuter.

  8. Pour valider le fichier azure-pipelines.yml dans votre référentiel, sélectionnez Enregistrer et réexécuter à nouveau.

Sélectionnez Job pour voir votre pipeline en action.

  1. Accédez à votre collection et sélectionnez votre projet.

  2. Sélectionnez Pipelines, puis Nouveau pipeline ou Créer un pipeline si vous créez le premier pipeline du projet.

  3. Suivez les étapes de l’Assistant en sélectionnant d’abord GitHub Enterprise Server comme emplacement du code source.

  4. Utilisez une connexion de service GitHub existante ou créez-en une.

    Pour créer une connexion de service :

    1. Sélectionnez Se connecter à GitHub Enterprise Server.
    2. Saisissez votre URL GitHub Enterprise Server.
    3. Saisissez votre jeton d’accès personnel GitHub Enterprise Server. Si vous n’avez pas de jeton d’accès personnel, vous pouvez en créer un dans votre compte GitHub Enterprise Server. Pour plus d’informations, consultez Création d’un jeton d’accès personnel.
  5. Sélectionnez votre dépôt. Vous serez peut-être redirigé vers GitHub pour pouvoir installer l’application Azure Pipelines. Si c’est le cas, sélectionnez Approuver et installer.

  6. Lorsque vous voyez l’onglet Configurer votre pipeline, sélectionnez Maven, Gradle ou Ant en fonction de la façon dont vous souhaitez générer votre code.

  7. Un azure-pipelines.yml fichier contenant votre définition de pipeline est créé dans votre référentiel et ouvert dans l’éditeur YAML. Vous pouvez personnaliser le pipeline en ajoutant d’autres tâches ou en modifiant les tâches existantes. Pour plus d’informations sur les tâches de génération, consultez Générer votre code.

  8. Une fois que vous avez terminé de modifier le azure-pipelines.yml, sélectionnez Enregistrer et exécuter.

  9. Pour valider le fichier azure-pipelines.yml dans votre référentiel, sélectionnez Enregistrer et réexécuter à nouveau.

Vous pouvez sélectionner Job pour voir votre pipeline en action.

Votre référentiel comprend maintenant un pipeline YAML (azure-pipelines.yml) opérationnel et prêt à être personnalisé ! Pour apporter des modifications à votre pipeline, sélectionnez-le dans la page Pipelines, puis sélectionnez Modifier pour modifier le fichier azure-pipelines.yml.

Environnement de génération

Utilisez Azure Pipelines pour créer des applications Java sans configurer l’infrastructure. Construisez sur des images Windows, Linux ou macOS. Les agents hébergés par Microsoft dans Azure Pipelines ont des kits JDK modernes et d’autres outils pour Java préinstallés. Pour vérifier les versions de Java installées, consultez les agents hébergés par Microsoft.

Sélectionnez l’image appropriée en mettant à jour l’extrait de code suivant dans votre azure-pipelines.yml fichier.

pool:
  vmImage: 'ubuntu-latest' # other options: 'macOS-latest', 'windows-latest'

Consultez Agents hébergés par Microsoft pour obtenir la liste complète des images.

En guise d’alternative aux agents hébergés par Microsoft, configurez des agents auto-hébergés avec Java installé. Utilisez des agents auto-hébergés pour gagner du temps si vous disposez d’un dépôt volumineux ou exécutez des builds incrémentielles.

Les builds s’exécutent sur un agent auto-hébergé. Vérifiez que Java et les outils requis pour votre méthode de build choisie sont installés sur l’hôte de l’agent.

Vous pouvez sélectionner votre pool d’agents et les fonctionnalités d’agent dans les sections Pool d’agents et Spécification de l’agent de l’onglet Options de l’éditeur de pipeline.

Par exemple, spécifiez le pool d’agents et un agent avec la fonctionnalité Maven en ajoutant l’extrait de code suivant à votre azure-pipelines.yml fichier.

pool: 
  name: MyPool
  demands: maven

Générer votre code

Vous pouvez créer votre application Java avec Maven, Gradle, Ant ou un script. Les sections suivantes décrivent comment ajouter une étape de génération à votre pipeline pour chaque méthode.

Maven

Pour une build Maven, ajoutez les tâches suivantes au azure-pipelines.yml fichier. Remplacez les valeurs pour les faire correspondre à votre projet. Pour plus d’informations sur ces options de tâche, consultez la Tâche Maven.

steps:
- task: Maven@4
  inputs:
    mavenPomFile: 'pom.xml'
    mavenOptions: '-Xmx3072m'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: 'default'
    jdkArchitectureOption: 'x64'
    publishJUnitResults: true
    testResultsFiles: '**/TEST-*.xml'
    goals: 'package'

Pour Spring Boot, vous pouvez également utiliser la tâche Maven. Assurez-vous que votre valeur mavenPomFile reflète le chemin d’accès à votre fichier pom.xml. Par exemple, si vous utilisez le dépôt d'exemple Spring Boot, votre chemin d’accès est complete/pom.xml.

Personnaliser le chemin de construction

Définissez la mavenPomFile valeur si le pom.xml fichier n’est pas à la racine du dépôt. La valeur du chemin d’accès du fichier doit être relative à la racine du dépôt, tels que IdentityService/pom.xml ou $(system.defaultWorkingDirectory)/IdentityService/pom.xml.

Personnaliser les objectifs Maven

Définissez la valeur des objectifs sur une liste d’objectifs séparés par un espace pour que Maven s’exécute, par exemple clean package. Pour plus d’informations sur les phases et objectifs Java courants, consultez la documentation Maven d’Apache.

Gradle

Pour une build Gradle, ajoutez la tâche suivante au azure-pipelines.yml fichier. Pour plus d’informations sur ces options, consultez la tâche Gradle.

steps:
- task: Gradle@3
  inputs:
    workingDirectory: ''
    gradleWrapperFile: 'gradlew'
    gradleOptions: '-Xmx3072m'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: 'default'
    jdkArchitectureOption: 'x64'
    publishJUnitResults: true
    testResultsFiles: '**/TEST-*.xml'
    tasks: 'build'

Wrapper Gradle

Vérifiez que le gradlew fichier se trouve dans le dépôt. Si ce n’est pas le cas, générez-le en l’exécutant gradle wrapper dans le répertoire racine du projet. Pour plus d’informations sur la création d’un wrapper Gradle, consultez Gradle.

Choisir la version de Gradle

La version de Gradle installée sur l’ordinateur de l’agent est utilisée, sauf si le fichier gradle/wrapper/gradle-wrapper.properties de votre référentiel possède une propriété distributionUrl qui spécifie une autre version de Gradle à télécharger et à utiliser pendant la build.

Ajuster le chemin d’accès de la build

Définissez la workingDirectory valeur si le gradlew fichier n’est pas à la racine du dépôt. La valeur du répertoire doit être relative à la racine du référentiel, par exemple IdentityService ou $(system.defaultWorkingDirectory)/IdentityService.

Ajustez la valeur gradleWrapperFile si votre fichier gradlew n’est pas à la racine du référentiel. La valeur du chemin d’accès du fichier doit être relative à la racine du référentiel, par exemple IdentityService/gradlew ou $(system.defaultWorkingDirectory)/IdentityService/gradlew.

Ajuster les tâches Gradle

Ajustez la valeur tâches pour les tâches que Gradle doit exécuter, comme build ou check. Pour plus d’informations sur les tâches courantes du plug-in Java pour Gradle, consultez la documentation de Gradle.

Fourmi

Avec Ant build, ajoutez la tâche suivante à votre fichier azure-pipelines.yml. Modifiez des valeurs, comme le chemin d’accès à votre fichier build.xml, pour correspondre à la configuration de votre projet. Pour plus d’informations sur ces options, consultez la tâche Ant. Si vous utilisez l’exemple de référentiel, vous devez fournir un fichier build.xml dans votre référentiel.

steps:
- task: Ant@1
  inputs:
    workingDirectory: ''
    buildFile: 'build.xml'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: 'default'
    jdkArchitectureOption: 'x64'
    publishJUnitResults: false
    testResultsFiles: '**/TEST-*.xml'

Scénario

Pour générer avec une ligne de commande ou un script, ajoutez l’un de ces extraits de code au azure-pipelines.yml fichier.

Script en ligne

L’étape script: exécute un script en ligne à l’aide de Bash sur Linux et macOS et de l’invite de commandes sur Windows. Pour plus d’informations, consultez la tâche Bash ou Ligne de commande.

steps:
- script: |
    echo Starting the build
    mvn package
  displayName: 'Build with Maven'

Fichier de script

Cette tâche exécute un fichier de script qui se trouve dans votre référentiel. Pour plus d’informations, consultez la tâche Script d’interpréteur de commandes, Script Batch ou PowerShell.

steps:
- task: ShellScript@2
  inputs:
    scriptPath: 'build.sh'

Étapes suivantes

Publiez votre sortie de build sur votre pipeline. Empaqueter et publier votre application dans un package Maven ou un fichier .war/jar pour le déployer sur une application web.

En savoir plus sur la création d’un pipeline CI/CD pour votre cible de déploiement :