Java-apps bouwen
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
U kunt een pijplijn gebruiken om het volgende automatisch te doen:
- Bouw uw project met behulp van Maven, Gradle of Ant.
- Voer tests en hulpprogramma's voor codeanalyse uit.
- Publiceer uw app naar uw pijplijn en Azure Artifacts.
- Implementeer uw app in Azure-app Service, Azure Functions of Azure Kubernetes Service.
Als u aan een Android-project werkt, raadpleegt u Android-apps bouwen, testen en implementeren.
Vereisten
Als u het volgende voorbeeld wilt uitvoeren, moet u het volgende hebben:
- Een GitHub-account waar u een opslagplaats kunt maken. Maak gratis een account.
- een Azure DevOps-organisatie. Maak gratis een account.
- Een Azure DevOps-project. Als u er nog geen hebt, maakt u nu een project .
- Een GitHub-account waar u een opslagplaats kunt maken. Maak gratis een account.
- Toegang tot een Azure DevOps Server-verzameling.
- De mogelijkheid om Azure Pipelines uit te voeren op zelf-hostende Azure DevOps-agents.
- Een Azure DevOps-project. Als u er nog geen hebt, maakt u nu een project .
Een GitHub-opslagplaats maken
Fork de volgende opslagplaats naar uw GitHub-account:
https://github.com/MicrosoftDocs/pipelines-java
Een pipeline maken
Meld u aan bij uw Azure DevOps-organisatie en ga naar uw project.
Ga naar Pijplijnen en selecteer vervolgens Nieuwe pijplijn of Pijplijn maken als u de eerste pijplijn in het project maakt.
Voer de stappen van de wizard uit door eerst GitHub te selecteren als de locatie van uw broncode. U wordt mogelijk omgeleid naar GitHub om u aan te melden. Voer in dat geval uw GitHub-referenties in.
Selecteer uw opslagplaats. U wordt mogelijk omgeleid naar GitHub om de Azure Pipelines-app te installeren. Als dat het zo is, selecteert u Goedkeuren en installeren.
Wanneer u het tabblad Uw pijplijn configureren ziet, selecteert u Maven, Gradle of Ant, afhankelijk van hoe u uw code wilt bouwen.
Er wordt een
azure-pipelines.yml
bestand met uw pijplijndefinitie gemaakt in uw opslagplaats en geopend in de YAML-editor. U kunt de pijplijn aanpassen door meer taken toe te voegen of de bestaande taken te wijzigen. Zie Uw code bouwen voor meer informatie over de buildtaken.Wanneer u klaar bent met het
azure-pipelines.yml
bewerken, selecteert u Opslaan en uitvoeren.Als u het
azure-pipelines.yml
bestand wilt doorvoeren in uw opslagplaats, selecteert u Opslaan en opnieuw uitvoeren .
Selecteer Taak om uw pijplijn in actie te bekijken.
Ga naar uw verzameling en selecteer uw project.
Selecteer Pijplijnen en selecteer vervolgens Nieuwe pijplijn of Pijplijn maken als u de eerste pijplijn in het project maakt.
Voer de stappen van de wizard uit door eerst GitHub Enterprise Server te selecteren als de locatie van uw broncode.
Gebruik een bestaande GitHub-serviceverbinding of maak een nieuwe.
Een serviceverbinding maken:
- Selecteer Verbinding maken met GitHub Enterprise Server.
- Voer de URL van uw GitHub Enterprise Server in.
- Voer uw persoonlijke toegangstoken voor GitHub Enterprise Server in. Als u geen persoonlijk toegangstoken hebt, kunt u er een maken in uw GitHub Enterprise Server-account. Zie Een persoonlijk toegangstoken maken voor meer informatie.
Selecteer uw opslagplaats. U wordt mogelijk omgeleid naar GitHub om de Azure Pipelines-app te installeren. Als dat het zo is, selecteert u Goedkeuren en installeren.
Wanneer u het tabblad Uw pijplijn configureren ziet, selecteert u Maven, Gradle of Ant, afhankelijk van hoe u uw code wilt bouwen.
Er wordt een
azure-pipelines-yml
bestand met uw pijplijndefinitie gemaakt in uw opslagplaats en geopend in de YAML-editor. U kunt de pijplijn aanpassen door meer taken toe te voegen of de bestaande taken te wijzigen. Zie Uw code bouwen voor meer informatie over de buildtaken.Wanneer u klaar bent met het
azure-pipelines.yml
bewerken, selecteert u Opslaan en uitvoeren.Als u het
azure-pipelines.yml
bestand wilt doorvoeren in uw opslagplaats, selecteert u Opslaan en opnieuw uitvoeren .
U kunt Taak selecteren om uw pijplijn in actie te bekijken.
U hebt nu een werkende YAML-pijplijn (azure-pipelines.yml
) in uw opslagplaats die u kunt aanpassen. Als u wijzigingen in uw pijplijn wilt aanbrengen, selecteert u deze op de pagina Pijplijnen en bewerkt u het azure-pipelines.yml
bestand.
Omgeving bouwen
U kunt Azure Pipelines gebruiken om Java-apps te bouwen zonder dat u een eigen infrastructuur hoeft in te stellen. U kunt bouwen op Windows-, Linux- of macOS-installatiekopieën. De door Microsoft gehoste agents in Azure Pipelines hebben moderne JDK's en andere hulpprogramma's voor Java die vooraf zijn geïnstalleerd. Als u wilt weten welke versies van Java zijn geïnstalleerd, raadpleegt u door Microsoft gehoste agents.
Als u de juiste afbeelding wilt selecteren, werkt u het volgende codefragment in het azure-pipelines.yml
bestand bij.
pool:
vmImage: 'ubuntu-latest' # other options: 'macOS-latest', 'windows-latest'
Zie door Microsoft gehoste agents voor een volledige lijst met installatiekopieën.
Als alternatief voor het gebruik van door Microsoft gehoste agents kunt u zelf-hostende agents instellen waarop Java is geïnstalleerd. U kunt ook zelf-hostende agents gebruiken om meer tijd te besparen als u een grote opslagplaats hebt of incrementele builds uitvoert.
Uw builds worden uitgevoerd op een zelf-hostende agent. Zorg ervoor dat u Java en de hulpprogramma's hebt die nodig zijn om te bouwen met de gekozen methode die is geïnstalleerd op de host van de agent.
U kunt uw agentgroep en de agentmogelijkheden selecteren in de secties Agentgroep en Agentspecificatie van het tabblad Opties in de pijplijneditor.
Als u bijvoorbeeld de agentgroep en een agent met de Maven-functie wilt opgeven, voegt u het volgende fragment toe aan uw azure-pipelines.yml
bestand.
pool:
name: MyPool
demands: maven
Uw code bouwen
U kunt uw Java-app bouwen met Maven, Gradle, Ant of een script. In de volgende secties ziet u hoe u een buildstap toevoegt aan uw pijplijn voor elke methode.
Maven
Met uw Maven-build worden de volgende taken toegevoegd aan uw azure-pipelines.yml
bestand. Vervang de waarden die overeenkomen met uw project. Zie de Maven-taak voor meer informatie over de taakopties.
steps:
- task: Maven@4
inputs:
mavenPomFile: 'pom.xml'
mavenOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: 'default'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
goals: 'package'
Voor Spring Boot kunt u ook de Maven-taak gebruiken. Zorg ervoor dat uw mavenPomFile
waarde het pad naar het pom.xml
bestand weerspiegelt. Als u bijvoorbeeld de Spring Boot-voorbeeldopslagplaats gebruikt, is complete/pom.xml
uw pad.
Het buildpad aanpassen
Pas de mavenPomFile
waarde aan als uw pom.xml
bestand zich niet in de hoofdmap van de opslagplaats bevindt. De waarde van het bestandspad moet relatief zijn ten opzichte van de hoofdmap van de opslagplaats, zoals IdentityService/pom.xml
of $(system.defaultWorkingDirectory)/IdentityService/pom.xml
.
Maven-doelen aanpassen
Stel de waarde voor doelen in op een door ruimte gescheiden lijst met doelen die Maven moet uitvoeren, zoals clean package
. Zie de Maven-documentatie van Apache voor meer informatie over veelvoorkomende Java-fasen en -doelen.
Gradle
Met de Gradle-build wordt de volgende taak toegevoegd aan uw azure-pipelines.yml
bestand. Zie de Gradle-taak voor meer informatie over deze opties.
steps:
- task: Gradle@2
inputs:
workingDirectory: ''
gradleWrapperFile: 'gradlew'
gradleOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: 'default'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
tasks: 'build'
Gradle wrapper
U moet een gradlew
bestand in uw opslagplaats hebben. Als u er nog geen hebt, kunt u deze genereren door deze uit te voeren gradle wrapper
in de hoofdmap van uw project. Zie gradle voor informatie over het maken van een Gradle-wrapper.
De versie van Gradle kiezen
De versie van Gradle die op de agentcomputer is geïnstalleerd, wordt gebruikt, tenzij het bestand van gradle/wrapper/gradle-wrapper.properties
uw opslagplaats een eigenschap heeft die een distributionUrl
andere Gradle-versie opgeeft die tijdens de build moet worden gedownload en gebruikt.
Het buildpad aanpassen
Pas de workingDirectory
waarde aan als uw gradlew
bestand zich niet in de hoofdmap van de opslagplaats bevindt.
De mapwaarde moet relatief zijn ten opzichte van de hoofdmap van de opslagplaats, zoals IdentityService
of $(system.defaultWorkingDirectory)/IdentityService
.
Pas de gradleWrapperFile
waarde aan als uw gradlew
bestand zich niet in de hoofdmap van de opslagplaats bevindt. De waarde van het bestandspad moet relatief zijn ten opzichte van de hoofdmap van de opslagplaats, zoals IdentityService/gradlew
of $(system.defaultWorkingDirectory)/IdentityService/gradlew
.
Gradle-taken aanpassen
Pas de taakwaarde aan voor de taken die Gradle moet uitvoeren, zoals build
of check
. Zie de documentatie van Gradle voor meer informatie over algemene Java-invoegtoepassingstaken voor Gradle.
Ant
Voeg met Ant-build de volgende taak toe aan uw azure-pipelines.yml
bestand. Wijzig waarden, zoals het pad naar het build.xml
bestand, zodat deze overeenkomt met de projectconfiguratie. Zie de ant-taak voor meer informatie over deze opties. Als u de voorbeeldopslagplaats gebruikt, moet u een build.xml
bestand in uw opslagplaats opgeven.
steps:
- task: Ant@1
inputs:
workingDirectory: ''
buildFile: 'build.xml'
javaHomeOption: 'JDKVersion'
jdkVersionOption: 'default'
jdkArchitectureOption: 'x64'
publishJUnitResults: false
testResultsFiles: '**/TEST-*.xml'
Script
Als u wilt bouwen met een opdrachtregel of script, voegt u een van de volgende codefragmenten toe aan uw azure-pipelines.yml
bestand.
Inlinescript
In de script:
stap wordt een inlinescript uitgevoerd met behulp van Bash in Linux en macOS en opdrachtprompt in Windows. Zie de Bash - of opdrachtregeltaak voor meer informatie.
steps:
- script: |
echo Starting the build
mvn package
displayName: 'Build with Maven'
Scriptbestand
Met deze taak wordt een scriptbestand uitgevoerd dat zich in uw opslagplaats bevindt. Zie de Shell-script-, Batch-script- of PowerShell-taak voor meer informatie.
steps:
- task: ShellScript@2
inputs:
scriptPath: 'build.sh'
Volgende stappen
U kunt de build-uitvoer publiceren naar uw pijplijn. U kunt uw app inpakken en publiceren in een Maven-pakket of een WAR/JAR-bestand dat moet worden geïmplementeerd in een webtoepassing.
Meer informatie over het maken van een CI/CD-pijplijn voor uw implementatiedoel: