Freigeben über


Erstellen von Java-Apps

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

Verwenden Sie Azure-Pipelines, um den Build, test und die Bereitstellung von Java-Anwendungen zu automatisieren. In diesem Artikel wird erläutert, wie Sie eine Pipeline für Java-Projekte mit Tools wie Maven, Gradle oder Ant einrichten. Außerdem erfahren Sie, wie Sie Ihre App für Azure-Dienste wie App Service, Funktionen oder Kubernetes bereitstellen.

Verwenden Sie eine Pipeline, um:

Wenn Sie an einem Android-Projekt arbeiten, lesen Sie "Erstellen, Testen und Bereitstellen von Android-Apps".

Voraussetzungen

Produkt Anforderungen
Azure DevOps - Ein Azure DevOps-Projekt.
– Eine Möglichkeit zum Ausführen von Pipelines auf von Microsoft gehosteten Agenten. Sie können entweder einen Parallelauftrag erwerben oder einen Free-Tarif anfordern.
- Grundkenntnisse in YAML und Azure Pipelines. Weitere Informationen finden Sie unter Erstellen Sie Ihre erste Pipeline.
- Berechtigungen:
     – Um eine Pipeline zu erstellen, müssen Sie sich in der Gruppe Mitwirkende befinden und die Gruppe muss die Berechtigung Buildpipeline erstellen auf "Zulassen" gesetzt haben. Mitglieder der Gruppe "Projektadministratoren " können Pipelines verwalten.
    – Um Dienstverbindungen zu erstellen: Sie müssen über die Rolle "Administrator " oder " Ersteller " für Dienstverbindungen verfügen.
GitHub (Englisch) - Ein GitHub-Konto .
– Eine GitHub-Dienstverbindung zum Autorisieren von Azure Pipelines.
Azurblau Ein Azure-Abonnement.
Produkt Anforderungen
Azure DevOps - Ein Azure DevOps-Projekt.
– Ein selbst gehosteter Agent. Um einen zu erstellen, lesen Sie Selbst gehostete Agenten.
- Grundkenntnisse in YAML und Azure Pipelines. Weitere Informationen finden Sie unter Erstellen Sie Ihre erste Pipeline.
- Berechtigungen:
    – Um eine Pipeline zu erstellen, müssen Sie sich in der Gruppe Mitwirkende befinden und die Gruppe muss die Berechtigung Buildpipeline erstellen auf "Zulassen" gesetzt haben. Mitglieder der Gruppe "Projektadministratoren " können Pipelines verwalten.
    – Um Dienstverbindungen zu erstellen: Sie müssen über die Rolle "Administrator " oder " Ersteller " für Dienstverbindungen verfügen.
GitHub (Englisch) - Ein GitHub-Konto .
– Eine GitHub-Dienstverbindung zum Autorisieren von Azure Pipelines.
Azurblau Ein Azure-Abonnement.

Erstellen eines GitHub-Repositorys

Forken Sie das folgende Repository auf Ihr GitHub-Konto.

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

Erstellen einer Pipeline

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und wechseln Sie zu Ihrem Projekt.

  2. Wechseln Sie zu Pipelines und wählen Sie dann Neue Pipeline oder Pipeline erstellen aus, wenn Sie in diesem Projekt die erste Pipeline erstellen.

  3. Führen Sie die Schritte des Assistenten aus, beginnend mit der Auswahl von GitHub als Speicherort des Quellcodes. Möglicherweise werden Sie zu GitHub weitergeleitet, um sich anzumelden. Geben Sie in diesem Fall Ihre Anmeldeinformationen für GitHub ein.

  4. Wählen Sie Ihr Repository aus. Sie werden möglicherweise zu GitHub weitergeleitet, um die Azure Pipelines-App zu installieren. Wenn ja, wählen Sie "Genehmigen" und "Installation" aus, um fortzufahren.

  5. Wenn die Registerkarte Ihre Pipeline konfigurieren angezeigt wird, wählen Sie Maven oder Gradle oder Ant aus, je nachdem, wie Sie Ihren Code erstellen möchten.

  6. Eine azure-pipelines.yml Datei, die Ihre Pipelinedefinition enthält, wird in Ihrem Repository erstellt und im YAML-Editor geöffnet. Sie können die Pipeline anpassen, indem Sie weitere Aufgaben hinzufügen oder die vorhandenen Aufgaben ändern. Weitere Informationen zu den Build-Aufgaben finden Sie unter Erstellen ihres Codes.

  7. Wenn Sie mit der Bearbeitung von azure-pipelines.ymlfertig sind, wählen Sie Speichern und ausführen.

  8. Um die azure-pipelines.yml Datei in Ihr Repo zu übernehmen, wählen Sie Speichern aus, und führen Sie den Vorgang erneut aus .

Wählen Sie Auftrag aus, um Ihre Pipeline in Aktion zu überwachen.

  1. Gehen Sie zu Ihrer Sammlung und wählen Sie Ihr Projekt aus.

  2. Wählen Sie Pipelines und wählen Sie dann Neue Pipeline oder Pipeline erstellen aus, wenn Sie in diesem Projekt die erste Pipeline erstellen.

  3. Führen Sie die Schritte des Assistenten aus, indem Sie zunächst GitHub Enterprise Server als Speicherort Ihres Quellcodes auswählen.​

  4. Verwenden Sie eine vorhandene GitHub-Dienstverbindung, oder erstellen Sie eine neue.

    So erstellen Sie eine Dienstverbindung:

    1. Wählen Sie Verbindung zu GitHub Enterprise Server herstellen aus.
    2. Geben Sie Ihre GitHub Enterprise Server-URL ein.
    3. Geben Sie Ihr persönliches GitHub Enterprise Server-Zugriffstoken ein. Wenn Sie kein persönliches Zugriffstoken besitzen, können Sie ein Token in Ihrem GitHub Enterprise Server-Konto erstellen. Weitere Informationen hierzu finden Sie unter Erstellen eines persönlichen Zugriffstokens.
  5. Wählen Sie Ihr Repository aus. Sie werden möglicherweise zu GitHub weitergeleitet, um die Azure Pipelines-App zu installieren. Wählen Sie in diesem Fall Genehmigen & installieren aus.

  6. Wenn die Registerkarte Ihre Pipeline konfigurieren angezeigt wird, wählen Sie Maven oder Gradle oder Ant aus, je nachdem, wie Sie Ihren Code erstellen möchten.

  7. Eine azure-pipelines.yml Datei, die Ihre Pipelinedefinition enthält, wird in Ihrem Repository erstellt und im YAML-Editor geöffnet. Sie können die Pipeline anpassen, indem Sie weitere Aufgaben hinzufügen oder die vorhandenen Aufgaben ändern. Weitere Informationen zu den Build-Aufgaben finden Sie unter Erstellen ihres Codes.

  8. Wenn Sie mit der Bearbeitung von azure-pipelines.ymlfertig sind, wählen Sie Speichern und ausführen.

  9. Um die azure-pipelines.yml Datei in Ihr Repo zu übernehmen, wählen Sie Speichern aus, und führen Sie den Vorgang erneut aus .

Sie können Auftrag auswählen, um Ihre Pipeline in Aktion zu überwachen.

Sie verfügen nun über eine funktionierende YAML-Pipeline (azure-pipelines.yml) in Ihrem Repository, die Sie anpassen können. Um Änderungen an Ihrer Pipeline vorzunehmen, wählen Sie sie auf der Seite Pipelines und bearbeiten Sie dann die azure-pipelines.yml Datei.

Buildumgebung

Verwenden Sie Azure Pipelines, um Java-Apps zu erstellen, ohne Infrastruktur einzurichten. Eine Version mit Windows-, Linux- oder macOS-Images erstellen. Von Microsoft gehostete Agents in Azure Pipelines verfügen über moderne JDKs und andere Tools für vorinstallierte Java. Informationen zum Überprüfen der installierten Java-Versionen finden Sie unter von Microsoft gehosteten Agents.

Wählen Sie das entsprechende Bild aus, indem Sie den folgenden Codeausschnitt in Ihrer azure-pipelines.yml Datei aktualisieren.

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

Eine vollständige Liste der Images finden Sie unter Von Microsoft gehostete Agents.

Als Alternative zu von Microsoft gehosteten Agents richten Sie selbst gehostete Agents mit installierter Java-Installation ein. Verwenden Sie selbst gehostete Agents, um Zeit zu sparen, wenn Sie über ein großes Repository verfügen oder inkrementelle Builds ausführen.

Builds werden auf einem selbst gehosteten Agent ausgeführt. Stellen Sie sicher, dass Java und die tools, die für Ihre ausgewählte Buildmethode erforderlich sind, auf dem Host des Agents installiert sind.

Sie können Ihren Agentenpool und die Agentenfunktionen in den Abschnitten Agentenpool und Agentenspezifikation der Registerkarte Optionen im Pipeline-Editor auswählen.

Geben Sie beispielsweise den Agentpool und einen Agent mit der Maven-Funktion an, indem Sie der azure-pipelines.yml Datei den folgenden Codeausschnitt hinzufügen.

pool: 
  name: MyPool
  demands: maven

Erstellen des Codes

Sie können Ihre Java-App mit Maven, Gradle, Ant oder einem Skript erstellen. In den folgenden Abschnitten wird gezeigt, wie Sie Ihrer Pipeline für jede Methode einen Buildschritt hinzufügen.

Experte

Fügen Sie für einen Maven-Build die folgenden Aufgaben zur azure-pipelines.yml Datei hinzu. Ersetzen Sie die Werte entsprechend Ihrem Projekt. Weitere Informationen zu den Aufgabenoptionen finden Sie in der Maven-Aufgabe.

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

Für Spring Boot können Sie die Maven-Aufgabe ebenfalls verwenden. Vergewissern Sie sich, dass Ihr mavenPomFile-Wert den Pfad zu Ihrer pom.xml-Datei widerspiegelt. Wenn Sie beispielsweise das Spring Boot-Beispielrepository verwenden, lautet Ihr Pfad complete/pom.xml.

Anpassen des Buildpfads

Legen Sie den mavenPomFile Wert fest, wenn sich die pom.xml Datei nicht im Stammverzeichnis des Repositorys befindet. Der Dateipfadwert muss relativ zum Stamm des Repositorys sein, wie zum Beispiel IdentityService/pom.xml oder $(system.defaultWorkingDirectory)/IdentityService/pom.xml.

Anpassen von Maven-Zielen

Legen Sie den Wert von Ziele auf eine durch Leerzeichen getrennte Liste von Zielen fest, die von Maven ausgeführt werden soll, z. B clean package. Ausführliche Informationen zu gängigen Java-Phasen und -Zielen finden Sie in der Maven-Dokumentation von Apache.

Gradle

Fügen Sie die folgende Aufgabe in die azure-pipelines.yml-Datei ein, um ein Gradle-Projekt zu erstellen. Weitere Informationen zu diesen Optionen finden Sie in der Gradle-Aufgabe.

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

Gradle-Wrapper

Stellen Sie sicher, dass sich die gradlew Datei im Repository befindet. Wenn es noch nicht vorhanden ist, generieren Sie es, indem Sie gradle wrapper im Stammverzeichnis des Projekts ausführen. Informationen zum Erstellen eines Gradle-Wrappers finden Sie unter Gradle.

Wählen Sie die Version von Gradle aus.

Die auf dem Agent-Computer installierte Version von Gradle wird verwendet, es sei denn, die gradle/wrapper/gradle-wrapper.properties-Datei Ihres Repositorys verfügt über eine distributionUrl-Eigenschaft, die eine andere Gradle-Version angibt, die während des Buildprozesses heruntergeladen und verwendet werden soll.

Anpassen des Buildpfads

Legen Sie den workingDirectory Wert fest, wenn sich die gradlew Datei nicht im Stammverzeichnis des Repositorys befindet. Der Verzeichniswert sollte relativ zum Stamm des Repositorys sein, z. B. IdentityService oder $(system.defaultWorkingDirectory)/IdentityService.

Passen Sie den gradleWrapperFile-Wert an, wenn sich Ihre gradlew-Datei nicht im Stammverzeichnis des Repositorys befindet. Der Dateipfadwert sollte relativ zum Stamm des Repositorys sein, z. B. IdentityService/gradlew oder $(system.defaultWorkingDirectory)/IdentityService/gradlew.

Anpassen von Gradle-Aufgaben

Passen Sie den Aufgabenwert für die Aufgaben an, die Gradle ausführen soll, z. B. build oder check. Weitere Informationen zu gängigen Java-Plug-In-Aufgaben für Gradle finden Sie in der Dokumentation von Gradle.

Ameise

Fügen Sie mit Ant build die folgende Aufgabe zu Ihrer azure-pipelines.yml-Datei hinzu. Ändern Sie Werte, z. B. den Pfad zu Ihrer build.xml-Datei, sodass sie der Projektkonfiguration entsprechen. Weitere Informationen zu diesen Optionen finden Sie in der Ant-Aufgabe. Wenn Sie das Beispiel-Repo verwenden, müssen Sie eine build.xml-Datei in Ihrem Repo angeben.

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

Skript

Um mit einer Befehlszeile oder einem Skript zu erstellen, fügen Sie der azure-pipelines.yml Datei einen dieser Codeausschnitte hinzu.

Inlineskript

Der script: Schritt führt ein Inlineskript unter Verwendung von Bash unter Linux und macOS und der Eingabeaufforderung unter Windows aus. Ausführliche Informationen finden Sie in der Bash- oder Befehlszeilen-Aufgabe.

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

Skriptdatei

Diese Aufgabe führt eine Skriptdatei aus, die sich in Ihrem Repo befindet. Ausführliche Informationen finden Sie in der Shellskript-, Batchskript- oder PowerShell-Aufgabe.

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

Nächste Schritte

Veröffentlichen Sie die Buildausgabe in Ihrer Pipeline. Packen und veröffentlichen Sie Ihre App in einem Maven-Paket oder einer WAR/JAR-Datei , um sie in einer Webanwendung bereitzustellen.

Weitere Informationen zum Erstellen einer CI/CD-Pipeline für Ihr Bereitstellungsziel: