Erstellen von Java-Apps
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Mit einer Pipeline können Sie automatisch Folgendes tun:
- Erstellen Sie Ihr Projekt mit Maven, Gradle oder Ant.
- Führen Sie Tests und Codeanalysetools aus.
- Veröffentlichen Sie Ihre App in Ihrer Pipeline und Azure Artifacts.
- Stellen Sie Ihre App für Azure-App Service, Azure Functions oder Azure Kubernetes Service bereit.
Wenn Sie an einem Android-Projekt arbeiten, finden Sie weitere Informationen unter Erstellen, Testen und Bereitstellen von Android-Apps.
Voraussetzungen
Um das folgende Beispiel auszuführen, müssen Sie Folgendes haben:
- Ein GitHub-Konto, in dem Sie ein Repository erstellen können. Erstellen Sie ein kostenloses Konto.
- Eine Azure DevOps-Organisation. Erstellen Sie ein kostenloses Konto.
- Ein Azure DevOps-Projekt. Wenn Sie über keines verfügen, erstellen Sie jetzt ein Projekt.
- Ein GitHub-Konto, in dem Sie ein Repository erstellen können. Erstellen Sie ein kostenloses Konto.
- Zugriff auf eine Azure DevOps Server-Sammlung.
- Die Möglichkeit, Azure Pipelines auf selbst gehosteten Azure DevOps-Agents auszuführen.
- Ein Azure DevOps-Projekt. Wenn Sie über keines verfügen, erstellen Sie jetzt ein Projekt.
Erstellen eines GitHub-Repositorys
Verzweigen Sie das folgende Repository in Ihr GitHub-Konto:
https://github.com/MicrosoftDocs/pipelines-java
Erstellen einer Pipeline
Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und wechseln Sie zu Ihrem Projekt.
Wechseln Sie zu Pipelines und wählen Sie dann Neue Pipeline oder Pipeline erstellen aus, wenn Sie in diesem Projekt die erste Pipeline erstellen.
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.
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.
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.
Eine
azure-pipelines.yml
Datei, die Ihre Pipelinedefinition enthält, wird in Ihrem Repo 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.Wenn Sie mit der Bearbeitung von
azure-pipelines.yml
fertig sind, wählen Sie Speichern und ausführen.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.
Gehen Sie zu Ihrer Sammlung und wählen Sie Ihr Projekt aus.
Wählen Sie Pipelines und wählen Sie dann Neue Pipeline oder Pipeline erstellen aus, wenn Sie in diesem Projekt die erste Pipeline erstellen.
Führen Sie die Schritte des Assistenten aus, indem Sie zunächst GitHub Enterprise Server als Speicherort Ihres Quellcodes auswählen.
Verwenden Sie eine vorhandene GitHub-Dienstverbindung, oder erstellen Sie eine neue.
So erstellen Sie eine Dienstverbindung:
- Wählen Sie Verbindung zu GitHub Enterprise Server herstellen aus.
- Geben Sie Ihre GitHub Enterprise Server-URL ein.
- 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.
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.
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.
Eine
azure-pipelines-yml
Datei, die Ihre Pipelinedefinition enthält, wird in Ihrem Repo 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.Wenn Sie mit der Bearbeitung von
azure-pipelines.yml
fertig sind, wählen Sie Speichern und ausführen.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
Sie können Azure Pipelines verwenden, um Java-Apps zu erstellen, ohne eine eigene Infrastruktur einrichten zu müssen. Die Erstellung kann in Windows-, Linux- oder macOS-Images erfolgen. Auf den von Microsoft gehosteten Agents in Azure Pipelines sind moderne JDKs und andere Tools für Java vorinstalliert. Informationen zu den installierten Java-Versionen finden Sie unter Von Microsoft gehostete Agents.
Um das entsprechende Bild auszuwählen, aktualisieren Sie das folgende Snippet in Ihrer azure-pipelines.yml
-Datei.
pool:
vmImage: 'ubuntu-latest' # other options: 'macOS-latest', 'windows-latest'
Eine vollständige Liste der Images finden Sie unter Von Microsoft gehostete Agents.
Alternativ zur Verwendung der von Microsoft gehosteten Agents können Sie selbstgehostete Agents einrichten, auf denen Java installiert ist. Sie können auch selbst gehostete Agenten verwenden, um mehr Zeit zu sparen, wenn Sie ein großes Repo haben oder inkrementelle Builds ausführen.
Ihre Builds werden auf einem selbstgehosteten Agent ausgeführt. Stellen Sie sicher, dass auf dem Host des Agenten Java und die zum Erstellen mit der von Ihnen gewählten Methode erforderlichen Tools installiert sind.
Sie können Ihren Agentenpool und die Agentenfunktionen in den Abschnitten Agentenpool und Agentenspezifikation der Registerkarte Optionen im Pipeline-Editor auswählen.
Um beispielsweise den Agentenpool und einen Agenten mit der Maven-Funktion anzugeben, fügen Sie den folgenden Codeausschnitt zu Ihrer azure-pipelines.yml
-Datei hinzu .
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.
Maven
Mit Ihrem Maven-Build werden die folgenden Aufgaben zu Ihrer azure-pipelines.yml
-Datei hinzugefügt. 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
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 sein, z. B. 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
Mit dem Gradle-Build wird die folgende Aufgabe zu Ihrer azure-pipelines.yml
-Datei hinzugefügt. Weitere Informationen zu diesen Optionen finden Sie in der Gradle-Aufgabe.
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
Sie müssen über eine gradlew
-Datei in Ihrem Repo verfügen. Wenn Sie noch keines haben, können Sie es generieren, indem Sie gradle wrapper
im Stammverzeichnis Ihres 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
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 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.
Ant
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
Wenn die Erstellung mit einer Befehlszeile oder einem Skript erfolgen soll, fügen Sie Ihrer azure-pipelines.yml
-Datei eines der folgenden Codeschnipsel hinzu.
Inlineskript
Beim script:
-Schritt wird ein Inlineskript mit Bash unter Linux und macOS und der Eingabeaufforderung unter Windows ausgeführt. 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
Sie können Die Buildausgabe in Ihrer Pipeline veröffentlichen. Sie können Ihre App in einem Maven-Paket oder einer WAR/JAR-Datei packen und veröffentlichen, die in einer Webanwendung bereitgestellt werden soll.
Weitere Informationen zum Erstellen einer CI/CD-Pipeline für Ihr Bereitstellungsziel: