Erstellen von Java-Apps

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Hinweis

In den folgenden Anleitungen werden YAML-basierte Pipelines verwendet, die in Azure Pipelines verfügbar sind. Verwenden Sie Aufgaben, die denen entsprechen, die in der folgenden YAML verwendet werden.

Sie können eine Pipeline verwenden, um Ihre Java-Projekte automatisch zu erstellen und zu testen. Nachdem Sie Ihre App erstellt und getestet haben, können Sie Azure App Service,Azure Functions oder Azure Kubernetes Service bereitstellen. Wenn Sie an einem Android-Projekt arbeiten, lesen Sie "Build", "Testen" und "Bereitstellen von Android-Apps".

Voraussetzungen

Sie müssen die folgenden Elemente in Azure DevOps haben:

Erstellen einer Pipeline

  1. Verzweigen Sie das folgende Repo bei GitHub:

    https://github.com/MicrosoftDocs/pipelines-java
    
  2. Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und wechseln Sie zu Ihrem Projekt.

  3. Navigieren Sie zu Pipelines, und wählen Sie Neue Pipeline aus.

  4. Führen Sie die Schritte des Assistenten aus. Dabei wählen Sie zuerst GitHub als Speicherort Ihres Quellcodes aus. Möglicherweise werden Sie zu GitHub weitergeleitet, um sich anzumelden. Geben Sie in diesem Fall Ihre Anmeldeinformationen für GitHub ein.

  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 und installieren aus.

  6. Wenn die Registerkarte "Konfigurieren " angezeigt wird, wählen Sie "Maven" aus.

  7. Wenn Sie so weit sind, wählen Sie Speichern und ausführen aus.

  8. Übernehmen Sie eine neue Azure-pipelines.yml-Datei in Ihr Repo. Wählen Sie erneut Speichern und ausführen aus.

    Wenn Sie Ihre Pipeline in Aktion überwachen möchten, wählen Sie den Buildauftrag aus.

    Sie haben gerade eine Pipeline erstellt und ausgeführt, die wir automatisch für Sie erstellt haben, da Ihr Code für die Maven-Vorlage eine gute Übereinstimmung darstellt.

    Sie haben jetzt eine funktionierende YAML-Pipeline (azure-pipelines.yml) in Ihrem Repo, die sie anpassen können!

  9. Wenn Sie bereit sind, Änderungen an Ihrer Pipeline vorzunehmen, wählen Sie sie auf der Seite Pipelines aus, und bearbeiten Sie dann die azure-pipelines.yml Datei.

  1. Importieren Sie das folgende Repository in Ihr Git-Repo in Azure DevOps Server 2019:

    https://github.com/MicrosoftDocs/pipelines-java
    
  1. Importieren Sie das folgende Repo in Ihr Git-Repo in TFS:

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

Diese Vorlage fügt automatisch die Aufgaben hinzu, die Sie zum Erstellen des Codes im Beispiel-Repo benötigen.

  1. Speichern Sie die Pipeline, und stellen Sie einen Build in die Warteschlange. Wenn die Meldung "Build #nnnnnnnn.n" in die Warteschlange gestellt wurde , wählen Sie den Nummernlink aus, um die Pipeline in Aktion anzuzeigen. Sie haben jetzt eine arbeitsfähige Pipeline, die Sie jederzeit anpassen können!

Lesen Sie weiter, um einige der gängigeren Methoden zum Anpassen Ihrer Pipeline zu erfahren.

Buildumgebung

Sie können Azure Pipelines verwenden, um Java-Apps zu erstellen, ohne eine eigene Infrastruktur einzurichten. Sie können auf Windows-, Linux- oder macOS-Images aufbauen. Die von Microsoft gehosteten Agents in Azure Pipelines verfügen über moderne JDKs und andere Tools für Java vorinstalliert. Informationen zu den installierten Java-Versionen finden Sie unter microsoft-gehostete Agents.

Aktualisieren Sie den folgenden Codeausschnitt in Ihrer azure-pipelines.yml Datei, um das entsprechende Bild auszuwählen.

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

Eine vollständige Liste der Bilder finden Sie unter microsoft-gehosteten Agents .

Alternativ zur Verwendung von von Microsoft gehosteten Agents können Sie selbst gehostete Agents mit java installiert einrichten. Sie können selbst gehostete Agents auch verwenden, um mehr Zeit zu sparen, wenn Sie über ein großes Repository verfügen oder inkrementelle Builds ausführen.

Ihre Builds werden auf einem selbst gehosteten Agent ausgeführt. Stellen Sie sicher, dass Java auf dem Agent installiert ist.

Erstellen des Codes

Maven

Um mit Maven zu erstellen, fügen Sie der azure-pipelines.yml Datei den folgenden Codeausschnitt hinzu. Ändern Sie Werte, z. B. den Pfad zu Ihrer Datei, um der pom.xml Projektkonfiguration zu entsprechen. Weitere Informationen zu diesen Optionen finden Sie in der Maven-Aufgabe .

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

Für Spring Boot können Sie auch die Maven-Aufgabe verwenden. Stellen Sie sicher, dass Ihr mavenPomFile Wert den Pfad zu Ihrer pom.xml Datei widerspiegelt. Wenn Sie z. B. das Spring Boot-Beispiel-Repo verwenden, lautet complete/pom.xmlIhr Pfad .

Anpassen des Buildpfads

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

Anpassen von Maven-Zielen

Legen Sie den Zielwert auf eine durch Leerzeichen getrennte Liste von Zielen fest, damit Maven ausgeführt werden kann, z clean package. B. .

Ausführliche Informationen zu allgemeinen Java-Phasen und -Zielen finden Sie in der Maven-Dokumentation von Apache.

Gradle

Um mit Gradle zu erstellen, fügen Sie der azure-pipelines.yml Datei den folgenden Codeausschnitt hinzu. Weitere Informationen zu diesen Optionen finden Sie in der Gradle-Aufgabe .

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

Wählen Sie die Version von Gradle aus.

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

Anpassen des Buildpfads

Passen Sie den workingDirectory Wert an, wenn sich Ihre gradlew Datei nicht im Stammverzeichnis des Repositorys befindet. Der Verzeichniswert sollte relativ zum Stamm des Repositorys, z IdentityService . B. 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, z IdentityService/gradlew . B. oder $(system.defaultWorkingDirectory)/IdentityService/gradlew.

Anpassen von Gradle-Aufgaben

Passen Sie den Aufgabenwert für die Vorgänge an, die Gradle ausführen soll, z build . B. oder check.

Ausführliche Informationen zu allgemeinen Java Plug-In-Aufgaben für Gradle finden Sie in der Dokumentation von Gradle.

Ant

Um mit Ant zu erstellen, fügen Sie der azure-pipelines.yml Datei den folgenden Codeausschnitt hinzu. Ändern Sie Werte, z. B. den Pfad zu Ihrer Datei, um der build.xml Projektkonfiguration zu entsprechen. Weitere Informationen zu diesen Optionen finden Sie in der Ant-Aufgabe .

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

Skript

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

Inlineskript

Der script: Schritt führt ein Inlineskript mit Bash unter Linux und macOS und Eingabeaufforderung auf Windows aus. Ausführliche Informationen finden Sie in der Bash - oder Befehlszeilenaufgabe .

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

Skriptdatei

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

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

Nächste Schritte

Nachdem Sie Ihre App erstellt und getestet haben, können Sie die Buildausgabe in Azure Pipelines hochladen, ein Maven-Paket erstellen und veröffentlichen oder die Buildausgabe in eine WAR/JAR-Datei packen, die in einer Webanwendung bereitgestellt werden soll.

Es wird empfohlen, weitere Informationen zum Erstellen einer CI/CD-Pipeline für das von Ihnen ausgewählte Bereitstellungsziel zu erhalten: