Générer des applications Java

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

Vous pouvez utiliser un pipeline pour effectuer les actions suivantes automatiquement :

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

Prérequis

Pour exécuter l’exemple suivant, vous devez disposer de ce qui suit :

  • Un compte GitHub dans lequel vous pouvez créer un référentiel. Créez-en un gratuitement.
  • Accès à une collection Azure DevOps Server.
  • La possibilité d’exécuter Azure Pipelines sur des agents autohébergés Azure DevOps.
  • Un projet Azure DevOps. Si vous n’en avez pas, Créez un projet maintenant.

Créer un référentiel GitHub

Dupliquer 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. Réalisez les étapes de l’Assistant en sélectionnant d’abord GitHub comme emplacement du 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 référentiel. Vous serez peut-être redirigé vers GitHub pour pouvoir installer l’application Azure Pipelines. Si c’est le cas, sélectionnez Approuver et installer.

  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 fichier azure-pipelines.yml contenant votre définition de pipeline est créé dans votre référentiel et est 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 Travail 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 fichier azure-pipelines-yml contenant votre définition de pipeline est créé dans votre référentiel et est 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 Travail pour voir votre pipeline en action.

Vous disposez maintenant d’un pipeline YAML opérationnel (azure-pipelines.yml) dans votre référentiel qui est 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

Vous pouvez utiliser Azure Pipelines pour créer des applications Java sans avoir à configurer votre propre infrastructure. Vous pouvez générer sur des images Windows, Linux ou macOS. Les agents hébergés par Microsoft dans Azure Pipelines disposent de kits JDK modernes et d’autres outils pour Java préinstallés. Pour savoir quelles versions de Java sont installées, consultez Agents hébergés par Microsoft.

Mettez à jour l’extrait de code suivant dans votre fichier azure-pipelines.yml pour sélectionner l’image appropriée.

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 à l’utilisation d’agents hébergés par Microsoft, vous pouvez configurer des agents auto-hébergés avec Java installé. Vous pouvez également utiliser des agents autohébergés pour gagner du temps si vous disposez d’un référentiel volumineux ou que vous exécutez des builds incrémentielles.

Vos builds s’exécutent sur un agent auto-hébergé. Assurez-vous que Java et les outils nécessaires pour générer avec la méthode 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, pour spécifier le pool d’agents et un agent avec la fonctionnalité Maven, ajoutez l’extrait de code suivant à votre fichier azure-pipelines.yml.

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

Avec votre build Maven, les tâches suivantes sont ajoutée à votre fichier azure-pipelines.yml. 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 l’échantillon de référentiel Spring Boot, votre chemin d’accès est complete/pom.xml.

Personnaliser le chemin d’accès de build

Ajustez la valeur mavenPomFile si votre fichier pom.xml 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/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

Avec la build Gradle, la tâche suivante est ajoutée à votre fichier azure-pipelines.yml. Pour plus d’informations sur ces options, consultez la tâche Gradle.

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

Wrapper Gradle

Vous devez disposer d’un fichier gradlew dans votre référentiel. Dans le cas contraire, vous pouvez le générer en exécutant gradle wrapper dans le répertoire racine de votre 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

Ajustez la valeur workingDirectory si votre fichier gradlew n’est pas à la racine du référentiel. 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.

Ant

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'

Script

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

Script en ligne

L’étape script: exécute un script inline à 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

Vous pouvez publier votre sortie de build sur votre pipeline. Vous pouvez empaqueter et publier votre application dans un package Maven ou un fichier .war/jar à déployer sur une application web.

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