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 :
- Générer votre projet à l’aide de Maven, Gradle ou Ant.
- Exécuter des tests et des outils d’analyse du code.
- Publier votre application sur votre pipeline et azure Artifacts.
- Déployer votre application sur Azure App Service, Azure Functions ou Azure Kubernetes Service.
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.
- Une organisation Azure DevOps. Créez-en un gratuitement.
- Un projet Azure DevOps. Si vous n’en avez pas, Créez un projet maintenant.
- 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
Connectez-vous à votre organisation Azure DevOps et accédez à votre projet.
Accédez à Pipelines, puis sélectionnez Nouveau pipeline ou Créer un pipeline si vous créez le premier pipeline du projet.
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.
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.
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.
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.Une fois que vous avez terminé de modifier le
azure-pipelines.yml
, sélectionnez Enregistrer et exécuter.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.
Accédez à votre collection et sélectionnez votre projet.
Sélectionnez Pipelines, puis Nouveau pipeline ou Créer un pipeline si vous créez le premier pipeline du projet.
Suivez les étapes de l’Assistant en sélectionnant d’abord GitHub Enterprise Server comme emplacement du code source.
Utilisez une connexion de service GitHub existante ou créez-en une.
Pour créer une connexion de service :
- Sélectionnez Se connecter à GitHub Enterprise Server.
- Saisissez votre URL GitHub Enterprise Server.
- 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.
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.
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.
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.Une fois que vous avez terminé de modifier le
azure-pipelines.yml
, sélectionnez Enregistrer et exécuter.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 :