Freigeben über


Maven@4 – Maven v4-Aufgabe

Erstellen, Testen und Bereitstellen mit Apache Maven.

Syntax

# Maven v4
# Build, test, and deploy with Apache Maven.
- task: Maven@4
  inputs:
    mavenPOMFile: 'pom.xml' # string. Required. Maven POM file. Default: pom.xml.
    #goals: 'package' # string. Goal(s). Default: package.
    #options: # string. Options. 
  # JUnit Test Results
    #publishJUnitResults: true # boolean. Publish to Azure Pipelines. Default: true.
    testResultsFiles: '**/surefire-reports/TEST-*.xml' # string. Required when publishJUnitResults = true. Test results files. Default: **/surefire-reports/TEST-*.xml.
    #testRunTitle: # string. Optional. Use when publishJUnitResults = true. Test run title. 
    #allowBrokenSymlinks: true # boolean. Alias: allowBrokenSymbolicLinks. Optional. Use when publishJUnitResults = true. Allow broken symbolic links. Default: true.
  # Code Coverage
    #codeCoverageToolOption: 'None' # 'None' | 'Cobertura' | 'JaCoCo'. Alias: codeCoverageTool. Code coverage tool. Default: None.
    #codeCoverageClassFilter: # string. Alias: classFilter. Optional. Use when codeCoverageTool != None. Class inclusion/exclusion filters. 
    #codeCoverageClassFilesDirectories: # string. Alias: classFilesDirectories. Optional. Use when codeCoverageTool = JaCoCo. Class files directories. 
    #codeCoverageSourceDirectories: # string. Alias: srcDirectories. Optional. Use when codeCoverageTool = JaCoCo. Source files directories. 
    #codeCoverageFailIfEmpty: false # boolean. Alias: failIfCoverageEmpty. Optional. Use when codeCoverageTool != None. Fail when code coverage results are missing. Default: false.
    #codeCoverageRestoreOriginalPomXml: false # boolean. Alias: restoreOriginalPomXml. Optional. Use when codeCoverageTool != None. Restore original pom.xml after task execution. Default: false.
  # Advanced
    javaHomeOption: 'JDKVersion' # 'JDKVersion' | 'Path'. Alias: javaHomeSelection. Required. Set JAVA_HOME by. Default: JDKVersion.
    #jdkVersionOption: 'default' # 'default' | '1.17' | '1.11' | '1.10' | '1.9' | '1.8' | '1.7' | '1.6'. Alias: jdkVersion. Optional. Use when javaHomeSelection = JDKVersion. JDK version. Default: default.
    #jdkDirectory: # string. Alias: jdkUserInputPath. Required when javaHomeSelection = Path. JDK path. 
    #jdkArchitectureOption: 'x64' # 'x86' | 'x64'. Alias: jdkArchitecture. Optional. Use when jdkVersion != default. JDK architecture. Default: x64.
    mavenVersionOption: 'Default' # 'Default' | 'Path'. Alias: mavenVersionSelection. Required. Maven version. Default: Default.
    #mavenDirectory: # string. Alias: mavenPath. Required when mavenVersionSelection = Path. Maven path. 
    #mavenSetM2Home: false # boolean. Optional. Use when mavenVersionSelection = Path. Set M2_HOME variable. Default: false.
    #mavenOptions: '-Xmx1024m' # string. Alias: mavenOpts. Set MAVEN_OPTS to. Default: -Xmx1024m.
    #mavenAuthenticateFeed: false # boolean. Alias: mavenFeedAuthenticate. Authenticate with Artifacts feeds. Default: false.
    #effectivePomSkip: false # boolean. Alias: skipEffectivePom. Skip generating effective POM while authenticating with Artifacts feeds. Default: false.
  # Code Analysis
    #sonarQubeRunAnalysis: false # boolean. Alias: sqAnalysisEnabled. Run SonarQube or SonarCloud analysis. Default: false.
    #isJacocoCoverageReportXML: false # boolean. Optional. Use when sqAnalysisEnabled = true && codeCoverageTool = JaCoCo. Use XML Jacoco reports for SonarQube analysis. Default: false.
    #sqMavenPluginVersionChoice: 'latest' # 'latest' | 'pom'. Required when sqAnalysisEnabled = true. SonarQube scanner for Maven version. Default: latest.
    #checkStyleRunAnalysis: false # boolean. Alias: checkstyleAnalysisEnabled. Run Checkstyle. Default: false.
    #pmdRunAnalysis: false # boolean. Alias: pmdAnalysisEnabled. Run PMD. Default: false.
    #findBugsRunAnalysis: false # boolean. Alias: findbugsAnalysisEnabled. Run FindBugs. Default: false.
    #spotBugsRunAnalysis: false # boolean. Alias: spotBugsAnalysisEnabled. Run SpotBugs analysis. Default: false.
    #spotBugsVersion: '4.5.3.0' # string. Alias: spotBugsMavenPluginVersion. Optional. Use when spotBugsAnalysisEnabled = true. Version number. Default: 4.5.3.0.
    #spotBugsGoal: 'spotbugs' # 'spotbugs' | 'check'. Optional. Use when spotBugsAnalysisEnabled = true. The goal for the spotbugs plugin. Default: spotbugs.
    #failWhenBugsFound: true # boolean. Alias: spotBugsFailWhenBugsFound | sbFailWhenBugsFound. Optional. Use when spotBugsAnalysisEnabled = true && spotBugsGoal = check. Fail when bugs are found with spotbugs:check. Default: true.

Eingaben

mavenPOMFile - Maven POM-Datei
string. Erforderlich. Standardwert. pom.xml.

Gibt den relativen Pfad vom Repositorystamm zur Maven POM-Datei an. Weitere Informationen finden Sie unter Einführung in die POM .


goals - Ziel(e)
string. Standardwert. package.

(Optional) Legen Sie auf fest package , um Ihren Code zu kompilieren und in eine WAR-Datei zu packen. Wenn Sie dieses Argument leer lassen, schlägt der Build fehl. Weitere Informationen finden Sie unter Einführung in den Maven-Buildlebenszyklus .


options - Optionen
string.

(Optional) Gibt alle Maven-Befehlszeilenoptionen an, die Sie verwenden möchten.


publishJUnitResults - Veröffentlichen in Azure Pipelines
boolean. Standardwert. true.

Gibt die Option zum Veröffentlichen der JUnit-Testergebnisse an, die vom Maven-Build in Azure Pipelines erstellt wurden. Jeder Testergebnisdateiabgleich Test Results Files wird als Testlauf in Azure Pipelines veröffentlicht.


testResultsFiles - Testergebnisdateien
string. Erforderlich, wenn publishJUnitResults = true. Standardwert. **/surefire-reports/TEST-*.xml.

Gibt den Pfad und das Muster der zu veröffentlichenden Testergebnisdateien an.
Platzhalter können verwendet werden.
Weitere Informationen zu Dateiabgleichsmustern.
Beispielsweise für alle XML-Dateien, **/TEST-*.xml deren Name mit TEST-beginnt. Wenn kein Stammpfad angegeben wird, werden Dateien unter dem Standardarbeitsverzeichnis abgeglichen, dessen Wert in der Variablen $(System.DefaultWorkingDirectory)verfügbar ist. Beispielsweise führt der Wert von **/TEST-*.xml tatsächlich zu übereinstimmenden Dateien aus $(System.DefaultWorkingDirectory)/**/TEST-*.xml.


testRunTitle - Titel der Testausführung
string. Optional. Verwenden Sie , wenn publishJUnitResults = true.

Gibt einen Namen für die Testausführung an.


allowBrokenSymlinks - Fehlerhafte symbolische Verknüpfungen zulassen
Eingabealias: allowBrokenSymbolicLinks. boolean. Optional. Verwenden Sie , wenn publishJUnitResults = true. Standardwert. true.

Wenn auf falsefestgelegt ist, schlägt der Build fehl, wenn der Task während der Veröffentlichung des Testergebnisses einen fehlerhaften symbolischen Link findet.


codeCoverageToolOption - Code Coverage-Tool
Eingabealias: codeCoverageTool. string. Zulässige Werte: None, Cobertura und JaCoCo. Standardwert. None.

Gibt das Code Coverage-Tool an. Wenn Sie code coverage aktivieren, wird das sauber Ziel in die Maven-Zielliste eingefügt, wenn Maven ausgeführt wird.


codeCoverageClassFilter - Klasseneinschluss-/Ausschlussfilter
Eingabealias: classFilter. string. Optional. Verwenden Sie , wenn codeCoverageTool != None.

Gibt eine durch Trennzeichen getrennte Liste von Filtern an, die Klassen vom Sammeln von Code Coverage einschließen oder ausschließen sollen. Beispiel: +:com.*,+:org.*,-:my.app*.*.


codeCoverageClassFilesDirectories - Verzeichnisse von Klassendateien
Eingabealias: classFilesDirectories. string. Optional. Verwenden Sie , wenn codeCoverageTool = JaCoCo.

Dieses Feld ist für ein Projekt mit mehreren Modulen erforderlich.
Gibt eine durch Trennzeichen getrennte Liste relativer Pfade von der Maven POM-Datei zu Verzeichnissen an, die Klassendateien und Archivdateien (JAR, WAR usw.) enthalten. Code Coverage wird für Klassendateien in diesen Verzeichnissen gemeldet. Beispiel: target/classes,target/testClasses.


codeCoverageSourceDirectories - Verzeichnisse für Quelldateien
Eingabealias: srcDirectories. string. Optional. Verwenden Sie , wenn codeCoverageTool = JaCoCo.

Dieses Feld ist für ein Projekt mit mehreren Modulen erforderlich.
Gibt eine durch Trennzeichen getrennte Liste von relativen Pfaden von der Maven POM-Datei zu Quellcodeverzeichnissen an. Code Coverage-Berichte verwenden diese, um Quellcode hervorzuheben. Beispiel: src/java,src/Test.


codeCoverageFailIfEmpty - Fehler, wenn Code Coverage-Ergebnisse fehlen
Eingabealias: failIfCoverageEmpty. boolean. Optional. Verwenden Sie , wenn codeCoverageTool != None. Standardwert. false.

Der Build schlägt fehl, wenn die Code coverage keine Ergebnisse für die Veröffentlichung erzeugt hat.


codeCoverageRestoreOriginalPomXml - Wiederherstellen des ursprünglichen pom.xml nach der Taskausführung
Eingabealias: restoreOriginalPomXml. boolean. Optional. Verwenden Sie , wenn codeCoverageTool != None. Standardwert. false.

Code Coverage ändert pom.xml sich, um Ergebnisse zu erzeugen. Verwenden Sie diese Option, wenn Sie das ursprüngliche pom.xmlbeibehalten müssen.


javaHomeOption - Festlegen von JAVA_HOME nach
Eingabealias: javaHomeSelection. string. Erforderlich. Zulässige Werte: JDKVersion (JDK-Version), Path. Standardwert. JDKVersion.

Legt JAVA_HOME entweder durch Auswählen einer JDK-Version fest, die während des Builds ermittelt wird, oder durch manuelle Eingabe eines JDK-Pfads. Wenn Java bereits auf dem Agent-Computer installiert ist, können Sie es angeben, indem Sie als und jdkDirectory als Pfad zum installierten JDK-Verzeichnis einrichten javaHomeOptionpath.


jdkVersionOption - JDK-Version
Eingabealias: jdkVersion. string. Optional. Verwenden Sie , wenn javaHomeSelection = JDKVersion. Zulässige Werte: default, 1.17 (JDK 17), 1.11 (JDK 11), 1.10 (JDK 10 (nicht mehr unterstützt)), 1.9 (JDK 9 (nicht mehr unterstützt)), 1.8 (JDK 8), 1.7 (JDK 7), 1.6 (JDK 6 (nicht mehr unterstützt)). Standardwert. default.

Versucht, den Pfad zur ausgewählten JDK-Version zu ermitteln, und legt entsprechend fest JAVA_HOME .
Hinweis: Wenn sie auf einem Agent ausgeführt wird, der nicht von Microsoft gehostet wird, und die angeforderte Java-Version nicht die vom JAVA_HOME Variablensatz auf dem Agent-Computer angegebene ist, basiert die Aufgabe auf der Variablen JAVA_HOME_{version}_{arch} (z. B.: JAVA_HOME_8_X64), um das erforderliche JDK zu finden. Stellen Sie sicher, dass diese Variable für selbstgehostete Agents für jede Version und Architektur des JDK festgelegt ist, die von diesem Parameter und/oder von jdkArchitectureangefordert werden kann.


jdkDirectory - JDK-Pfad
Eingabealias: jdkUserInputPath. string. Erforderlich, wenn javaHomeSelection = Path.

Legt JAVA_HOME auf den angegebenen Pfad fest.


jdkArchitectureOption - JDK-Architektur
Eingabealias: jdkArchitecture. string. Optional. Verwenden Sie , wenn jdkVersion != default. Zulässige Werte: x86, x64. Standardwert. x64.

Stellt die Architektur (x86, x64) des JDK bereit.


mavenVersionOption - Maven-Version
Eingabealias: mavenVersionSelection. string. Erforderlich. Zulässige Werte: Default, Path (benutzerdefinierter Pfad). Standardwert. Default.

Gibt entweder die Maven-Standardversion oder die Version im angegebenen benutzerdefinierten Pfad an.


mavenDirectory - Maven-Pfad
Eingabealias: mavenPath. string. Erforderlich, wenn mavenVersionSelection = Path.

Stellt den benutzerdefinierten Pfad zur Maven-Installation bereit (z. B. /usr/share/maven).


mavenSetM2Home - Festlegen M2_HOME Variablen
boolean. Optional. Verwenden Sie , wenn mavenVersionSelection = Path. Standardwert. false.

Legt die M2_HOME Variable auf einen benutzerdefinierten Maven-Installationspfad fest.


mavenOptions - Legen Sie MAVEN_OPTS auf fest.
Eingabealias: mavenOpts. string. Standardwert. -Xmx1024m.

Legt die Umgebungsvariable MAVEN_OPTS fest, die zum Senden von Befehlszeilenargumenten zum Starten der JVM verwendet wird. Das -Xmx Flag gibt den maximalen Arbeitsspeicher an, der der JVM zur Verfügung steht.


mavenAuthenticateFeed - Authentifizieren mit Artefaktfeeds
Eingabealias: mavenFeedAuthenticate. boolean. Standardwert. false.

Wird automatisch mit Azure Artifacts-Feeds authentifiziert. Wenn Artifacts-Feeds nicht verwendet werden, deaktivieren Sie diese Option für schnellere Builds.


effectivePomSkip - Überspringen der Generierung eines effektiven POM bei der Authentifizierung mit Artifacts-Feeds
Eingabealias: skipEffectivePom. boolean. Standardwert. false.

Authentifiziert sich mit Artifacts-Feeds nur mithilfe des POM.


sonarQubeRunAnalysis - Ausführen einer SonarQube- oder SonarCloud-Analyse
Eingabealias: sqAnalysisEnabled. boolean. Standardwert. false.

Diese Option wurde von der Verwendung von Version 1 der Maven-Aufgabe zur Verwendung der Marketplace-Erweiterungen SonarQube und SonarCloud geändert.
Aktivieren Sie diese Option, um die SonarQube- oder SonarCloud-Analyse nach dem Ausführen von Zielen im Feld Ziele auszuführen. Das Installations- oder Paketziel sollte zuerst ausgeführt werden. Vor dieser Maven-Aufgabe müssen Sie der Buildpipeline auch den Task Analysekonfiguration vorbereiten aus einer der Erweiterungen hinzufügen.


isJacocoCoverageReportXML - Verwenden von XML-Jacoco-Berichten für die SonarQube-Analyse
boolean. Optional. Verwenden Sie , wenn sqAnalysisEnabled = true && codeCoverageTool = JaCoCo. Standardwert. false.

Verwendet XML-Jacoco-Berichte für die SonarQube-Analyse. Erfahren Sie mehr über Testberichte.


sqMavenPluginVersionChoice - SonarQube-Scanner für Maven-Version
string. Erforderlich, wenn sqAnalysisEnabled = true. Zulässige Werte: latest (Aktuelle Version verwenden), pom (Verwenden Sie die in Ihrem pom.xml deklarierte Version). Standardwert. latest.

Gibt die zu verwendende SonarQube Maven-Plug-In-Version an. Sie können die neueste Version verwenden oder sich auf die Version in Ihrem pom.xmlverlassen.


checkStyleRunAnalysis - Ausführen von Checkstyle
Eingabealias: checkstyleAnalysisEnabled. boolean. Standardwert. false.

Führt das Checkstyle-Tool mit den standardmäßigen Sun-Überprüfungen aus. Wenn in der pom.xml Datei keine Checkstyle-Konfiguration angegeben ist, werden standardmäßige Sun-Überprüfungen verwendet. Ergebnisse werden als Buildartefakte hochgeladen.


pmdRunAnalysis - Ausführen von PMD
Eingabealias: pmdAnalysisEnabled. boolean. Standardwert. false.

Verwendet das statische Analysetool PMD, um nach Fehlern im Code zu suchen. Ergebnisse werden als Buildartefakte hochgeladen.


findBugsRunAnalysis - Ausführen von FindBugs
Eingabealias: findbugsAnalysisEnabled. boolean. Standardwert. false.

Verwendet das statische Analysetool FindBugs, um nach Fehlern im Code zu suchen. Ergebnisse werden als Buildartefakte hochgeladen.


spotBugsRunAnalysis - Ausführen der SpotBugs-Analyse
Eingabealias: spotBugsAnalysisEnabled. boolean. Standardwert. false.

Aktivieren Sie diese Option, um das SpotBugs-Codeanalyse-Plug-In auszuführen. Weitere Informationen zum SpotBugs Maven-Plug-In.


spotBugsVersion - Versionsnummer
Eingabealias: spotBugsMavenPluginVersion. string. Optional. Verwenden Sie , wenn spotBugsAnalysisEnabled = true. Standardwert. 4.5.3.0.

Erfahren Sie mehr über die verfügbaren Versionen von SpotBugs.


spotBugsGoal - Das Ziel für das Spotbugs-Plug-In
string. Optional. Verwenden Sie , wenn spotBugsAnalysisEnabled = true. Zulässige Werte: spotbugs ("Spotbugs" – Erstellt einen Bericht zu gefundenen Fehlern), check ("Check" – Pipeline schlägt fehl, wenn Fehler erkannt wurden). Standardwert. spotbugs.

Gibt das Ziel des Plug-Ins an. Erfahren Sie mehr über SpotBugs-Ziele.


failWhenBugsFound - Fehler, wenn Fehler mit spotbugs:check gefunden werden
Eingabealias: spotBugsFailWhenBugsFound | sbFailWhenBugsFound. boolean. Optional. Verwenden Sie , wenn spotBugsAnalysisEnabled = true && spotBugsGoal = check. Standardwert. true.

Fehler, wenn Fehler gefunden werden, wenn Ziel überprüfen angegeben ist. Weitere Informationen zu SpotBug-Parameterdetails.


Optionen für die Vorgangskontrolle

Alle Vorgänge verfügen zusätzlich zu ihren Eingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerungsoptionen und allgemeine Aufgabeneigenschaften.

Ausgabevariablen

Keine.

Bemerkungen

Die Konfiguration der SonarQube-Analyse wurde in der Aufgabe Analysekonfiguration vorbereiten in die Erweiterungen SonarQube oder SonarCloud verschoben.

Wichtig

Wenn Sie die -q Option in Verwenden MAVEN_OPTS, wird ein effektiver Pom nicht ordnungsgemäß generiert, und Azure Artifacts-Feeds können möglicherweise nicht authentifiziert werden.

Wichtig

Wenn die JDK-Version, die Sie verwenden möchten, bereits auf Ihrem Agent installiert ist, legen Sie javaHomeOption auf path fest, und legen Sie auf jdkDirectory den Pfad der JDK-Version fest. Diese Optionen legen die Umgebungsvariable JAVA_HOME_11_X64 fest, die für die Maven-Aufgabe erforderlich ist. Diese Umgebungsvariable wird automatisch festgelegt, wenn Sie den Task java tool installer verwenden.

Häufig gestellte Fragen

Ich habe ein Projekt mit mehreren Modulen, aber mein Build schlägt fehl. Was sollte ich überprüfen?

Stellen Sie sicher, dass Sie und #codeCoverageSourceDirectories als Vorgangseingabe angegeben #codeCoverageClassFilesDirectories haben. Diese beiden Parameter sind für ein einzelnes Modulprojekt optional, aber für Projekte mit mehreren Modulen erforderlich.

Beispiele

Anforderungen

Anforderung BESCHREIBUNG
Pipelinetypen YAML, Klassischer Build, klassisches Release
Wird ausgeführt auf Agent, DeploymentGroup
Forderungen Selbstgehostete Agents müssen über Funktionen verfügen, die den folgenden Anforderungen entsprechen , um Aufträge auszuführen, die diese Aufgabe verwenden: maven
Capabilities Diese Aufgabe erfüllt keine Anforderungen an nachfolgende Aufgaben im Auftrag.
Befehlseinschränkungen Any
Setzbare Variablen Any
Agent-Version 1.89.0 oder höher
Aufgabenkategorie Entwickeln

Siehe auch