Delen via


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:

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.
  • 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

  1. Meld u aan bij uw Azure DevOps-organisatie en ga naar uw project.

  2. Ga naar Pijplijnen en selecteer vervolgens Nieuwe pijplijn of Pijplijn maken als u de eerste pijplijn in het project maakt.

  3. 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.

  4. 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.

  5. Wanneer u het tabblad Uw pijplijn configureren ziet, selecteert u Maven, Gradle of Ant, afhankelijk van hoe u uw code wilt bouwen.

  6. 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.

  7. Wanneer u klaar bent met het azure-pipelines.ymlbewerken, selecteert u Opslaan en uitvoeren.

  8. 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.

  1. Ga naar uw verzameling en selecteer uw project.

  2. Selecteer Pijplijnen en selecteer vervolgens Nieuwe pijplijn of Pijplijn maken als u de eerste pijplijn in het project maakt.

  3. Voer de stappen van de wizard uit door eerst GitHub Enterprise Server te selecteren als de locatie van uw broncode.

  4. Gebruik een bestaande GitHub-serviceverbinding of maak een nieuwe.

    Een serviceverbinding maken:

    1. Selecteer Verbinding maken met GitHub Enterprise Server.
    2. Voer de URL van uw GitHub Enterprise Server in.
    3. 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.
  5. 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.

  6. Wanneer u het tabblad Uw pijplijn configureren ziet, selecteert u Maven, Gradle of Ant, afhankelijk van hoe u uw code wilt bouwen.

  7. 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.

  8. Wanneer u klaar bent met het azure-pipelines.ymlbewerken, selecteert u Opslaan en uitvoeren.

  9. 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.xmluw 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: