Sdílet prostřednictvím


Maven@4 – úloha Maven v4

Sestavení, testování a nasazení s využitím Apache Mavenu

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.

Vstupy

mavenPOMFile - Soubor Maven POM
string. Povinná hodnota. Výchozí hodnota: pom.xml.

Určuje relativní cestu z kořenového adresáře úložiště k souboru Maven POM. Další informace najdete v tématu Úvod do POM .


goals - Cíle
string. Výchozí hodnota: package.

(Volitelné) Pokud chcete zkompilovat kód a zabalit ho do souboru .war, nastavte na package hodnotu . Pokud tento argument necháte prázdný, sestavení selže. Další informace najdete v tématu Úvod do životního cyklu sestavení Maven .


options - Možnosti
string.

(Volitelné) Určuje všechny možnosti příkazového řádku Mavenu, které chcete použít.


publishJUnitResults - Publikování do Azure Pipelines
boolean. Výchozí hodnota: true.

Určuje možnost publikovat výsledky testu JUnit vytvořené sestavením Maven do Azure Pipelines. Každý soubor Test Results Files výsledků testu se publikuje jako testovací běh v Azure Pipelines.


testResultsFiles - Soubory výsledků testů
string. Vyžaduje se, když publishJUnitResults = true. Výchozí hodnota: **/surefire-reports/TEST-*.xml.

Určuje cestu a vzor souborů výsledků testů, které se mají publikovat.
Je možné použít zástupné é kóty.
Další informace o vzorech porovnávání souborů.
Například pro všechny soubory XML, **/TEST-*.xml jejichž název začíná na TEST-. Pokud není zadána žádná kořenová cesta, soubory se shodují pod výchozím pracovním adresářem, jehož hodnota je k dispozici v proměnné $(System.DefaultWorkingDirectory). Například hodnota **/TEST-*.xml bude mít ve skutečnosti za následek odpovídající soubory z $(System.DefaultWorkingDirectory)/**/TEST-*.xml.


testRunTitle - Název testovacího běhu
string. Nepovinný parametr. Použijte, když publishJUnitResults = true.

Určuje název testovacího běhu.


allowBrokenSymlinks - Povolit nefunkční symbolické odkazy
Alias vstupu: allowBrokenSymbolicLinks. boolean. Nepovinný parametr. Použijte, když publishJUnitResults = true. Výchozí hodnota: true.

Pokud je nastavená hodnota false, sestavení selže, když úloha při publikování výsledku testů najde poškozený symbolický odkaz.


codeCoverageToolOption - Nástroj pokrytí kódu
Alias vstupu: codeCoverageTool. string. Povolené hodnoty: None, Cobertura, JaCoCo. Výchozí hodnota: None.

Určuje nástroj pokrytí kódu. Povolení pokrytí kódu vloží čistý cíl do seznamu cílů Mavenu při spuštění Mavenu.


codeCoverageClassFilter - Filtry zahrnutí/vyloučení třídy
Alias vstupu: classFilter. string. Nepovinný parametr. Použijte, když codeCoverageTool != None.

Určuje seznam filtrů oddělených čárkami pro zahrnutí nebo vyloučení tříd ze shromažďování pokrytí kódu. Například, +:com.*,+:org.*,-:my.app*.*.


codeCoverageClassFilesDirectories - Adresáře souborů tříd
Alias vstupu: classFilesDirectories. string. Nepovinný parametr. Použijte, když codeCoverageTool = JaCoCo.

Toto pole je vyžadováno pro projekt s více moduly.
Určuje čárkami oddělený seznam relativních cest ze souboru POM Maven k adresářům obsahujícím soubory tříd a archivní soubory (JAR, WAR atd.). Pokrytí kódu se hlásí pro soubory tříd v těchto adresářích. Například, target/classes,target/testClasses.


codeCoverageSourceDirectories - Adresáře zdrojových souborů
Alias vstupu: srcDirectories. string. Nepovinný parametr. Použijte, když codeCoverageTool = JaCoCo.

Toto pole je vyžadováno pro projekt s více moduly.
Určuje čárkami oddělený seznam relativních cest ze souboru POM Mavenu k adresářům zdrojového kódu. Sestavy pokrytí kódu je používají ke zvýraznění zdrojového kódu. Například, src/java,src/Test.


codeCoverageFailIfEmpty - Selhání, když chybí výsledky pokrytí kódu
Alias vstupu: failIfCoverageEmpty. boolean. Nepovinný parametr. Použijte, když codeCoverageTool != None. Výchozí hodnota: false.

Sestavení selže, pokud pokrytí kódu nepřivedlo žádné výsledky k publikování.


codeCoverageRestoreOriginalPomXml - Obnovení původního pom.xml po spuštění úlohy
Alias vstupu: restoreOriginalPomXml. boolean. Nepovinný parametr. Použijte, když codeCoverageTool != None. Výchozí hodnota: false.

Pokrytí kódu se upraví tak, aby se vygenerovály pom.xml výsledky. Tuto možnost použijte, pokud potřebujete zachovat původní pom.xml.


javaHomeOption - Nastavit JAVA_HOME
Alias vstupu: javaHomeSelection. string. Povinná hodnota. Povolené hodnoty: JDKVersion (verze sady JDK), Path. Výchozí hodnota: JDKVersion.

Nastaví JAVA_HOME buď výběrem verze sady JDK, která se zjistí během sestavování, nebo ručním zadáním cesty k JDK. Pokud už máte na počítači agenta nainstalovanou Javu, můžete ji zadat tak javaHomeOption , že nastavíte jako path a jdkDirectory jako cestu k nainstalovanému adresáři sady JDK.


jdkVersionOption - Verze sady JDK
Alias vstupu: jdkVersion. string. Nepovinný parametr. Použijte, když javaHomeSelection = JDKVersion. Povolené hodnoty: default, 1.17 (JDK 17), 1.11 (JDK 11), 1.10 (JDK 10 (mimo podporu)), 1.9 (JDK 9 (mimo podporu)), 1.8 (JDK 8), 1.7 (JDK 7), 1.6 (JDK 6 (mimo podporu)). Výchozí hodnota: default.

Pokusí se zjistit cestu k vybrané verzi sady JDK a nastaví JAVA_HOME odpovídajícím způsobem.
Poznámka: Pokud běží na agentu, který není hostitelem Microsoftu, a požadovaná verze Javy není verze určená proměnnou nastavenou JAVA_HOME na počítači agenta, bude úloha spoléhat na proměnnou JAVA_HOME_{version}_{arch} (například: JAVA_HOME_8_X64) k vyhledání potřebné sady JDK. Ujistěte se, že je tato proměnná nastavená u agentů v místním prostředí pro libovolnou verzi a architekturu sady JDK, kterou tento parametr a/nebo může jdkArchitecturepožadovat .


jdkDirectory - Cesta sady JDK
Alias vstupu: jdkUserInputPath. string. Vyžaduje se, když javaHomeSelection = Path.

Nastaví JAVA_HOME na danou cestu.


jdkArchitectureOption - Architektura sady JDK
Vstupní alias: jdkArchitecture. string. Nepovinný parametr. Použijte, když jdkVersion != default. Povolené hodnoty: x86, x64. Výchozí hodnota: x64.

Poskytuje architekturu (x86, x64) sady JDK.


mavenVersionOption - Verze Mavenu
Vstupní alias: mavenVersionSelection. string. Povinná hodnota. Povolené hodnoty: Default, Path (Vlastní cesta). Výchozí hodnota: Default.

Určuje buď výchozí verzi Mavenu, nebo verzi v zadané vlastní cestě.


mavenDirectory - Cesta Mavenu
Vstupní alias: mavenPath. string. Vyžaduje se, když mavenVersionSelection = Path.

Poskytne vlastní cestu k instalaci Mavenu (například: /usr/share/maven).


mavenSetM2Home - Nastavení proměnné M2_HOME
boolean. Nepovinný parametr. Použijte, když mavenVersionSelection = Path. Výchozí hodnota: false.

Nastaví proměnnou M2_HOME na vlastní instalační cestu Mavenu.


mavenOptions - Nastavte MAVEN_OPTS na
Vstupní alias: mavenOpts. string. Výchozí hodnota: -Xmx1024m.

Nastaví proměnnou MAVEN_OPTS prostředí, která se používá k odesílání argumentů příkazového řádku ke spuštění prostředí JVM. Příznak -Xmx určuje maximální dostupnou paměť pro JVM.


mavenAuthenticateFeed - Ověřování pomocí informačních kanálů artefaktů
Vstupní alias: mavenFeedAuthenticate. boolean. Výchozí hodnota: false.

Automaticky se ověřuje pomocí informačních kanálů Azure Artifacts. Pokud se informační kanály artefaktů nepoužívají, zrušte výběr této možnosti pro rychlejší sestavení.


effectivePomSkip - Přeskočit generování efektivního POM při ověřování pomocí informačních kanálů artefaktů
Vstupní alias: skipEffectivePom. boolean. Výchozí hodnota: false.

Ověřuje se pomocí informačních kanálů artefaktů pouze pomocí POM.


sonarQubeRunAnalysis - Spuštění analýzy SonarQube nebo SonarCloud
Vstupní alias: sqAnalysisEnabled. boolean. Výchozí hodnota: false.

Tato možnost se změnila z použití úlohy Maven verze 1 na použití rozšíření SonarQube a SonarCloud marketplace.
Tuto možnost povolte, pokud chcete spustit analýzu SonarQube nebo SonarCloud po provedení cílů v poli Cíle . Jako první by se měl spustit cíl instalace nebo balíčku . Před touto úlohou Mavenu musíte do kanálu sestavení přidat také úlohu Připravit konfiguraci analýzy z jednoho z rozšíření.


isJacocoCoverageReportXML - Použití xml sestav Jacoco pro analýzu SonarQube
boolean. Nepovinný parametr. Použijte, když sqAnalysisEnabled = true && codeCoverageTool = JaCoCo. Výchozí hodnota: false.

Používá sestavy Jacoco XML pro analýzu SonarQube. Přečtěte si další informace o sestavách testů.


sqMavenPluginVersionChoice - Skener SonarQube pro verzi Mavenu
string. Vyžaduje se, když sqAnalysisEnabled = true. Povolené hodnoty: latest (Použijte nejnovější verzi) pom (Použijte verzi deklarovanou v pom.xml). Výchozí hodnota: latest.

Určuje verzi modulu plug-in SonarQube Maven, která se má použít. Můžete použít nejnovější verzi nebo se spolehnout na verzi v pom.xmlsouboru .


checkStyleRunAnalysis - Spustit kontrolní styl
Vstupní alias: checkstyleAnalysisEnabled. boolean. Výchozí hodnota: false.

Spustí nástroj Checkstyle s výchozími sunovými kontrolami. Pokud v pom.xml souboru není zadána žádná konfigurace stylu kontroly, použijí se výchozí kontroly Sun. Výsledky se nahrají jako artefakty sestavení.


pmdRunAnalysis - Spustit PMD
Vstupní alias: pmdAnalysisEnabled. boolean. Výchozí hodnota: false.

Pomocí nástroje pro statickou analýzu PMD vyhledá chyby v kódu. Výsledky se nahrají jako artefakty sestavení.


findBugsRunAnalysis - Spuštění FindBugs
Vstupní alias: findbugsAnalysisEnabled. boolean. Výchozí hodnota: false.

Používá nástroj pro statickou analýzu FindBugs k vyhledání chyb v kódu. Výsledky se nahrají jako artefakty sestavení.


spotBugsRunAnalysis - Spuštění analýzy SpotBugs
Vstupní alias: spotBugsAnalysisEnabled. boolean. Výchozí hodnota: false.

Tuto možnost povolte, pokud chcete spustit modul plug-in analýzy kódu SpotBugs. Další informace o modulu plug-in SpotBugs Maven


spotBugsVersion - Číslo verze
Vstupní alias: spotBugsMavenPluginVersion. string. Nepovinný parametr. Použijte, když spotBugsAnalysisEnabled = true. Výchozí hodnota: 4.5.3.0.

Seznamte se s dostupnými verzemi SpotBugs.


spotBugsGoal - Cíl modulu plug-in spotbugs
string. Nepovinný parametr. Použijte, když spotBugsAnalysisEnabled = true. Povolené hodnoty: spotbugs ("spotbugs" – vytvoří sestavu o nalezených chybách) check ("check" – Kanál selže, pokud byly zjištěny chyby). Výchozí hodnota: spotbugs.

Určuje cíl modulu plug-in. Přečtěte si další informace o cílech SpotBugs.


failWhenBugsFound - Selhání při zjištění chyb se spotbugs:check
Vstupní alias: spotBugsFailWhenBugsFound | sbFailWhenBugsFound. boolean. Nepovinný parametr. Použijte, když spotBugsAnalysisEnabled = true && spotBugsGoal = check. Výchozí hodnota: true.

Selže, pokud jsou nalezeny chyby, pokud je zadán cíl kontroly . Přečtěte si další informace o podrobnostech parametrů SpotBug.


Možnosti ovládání úloh

Všechny úlohy mají kromě vstupů také možnosti ovládání. Další informace najdete v tématu Možnosti ovládacího prvku a běžné vlastnosti úlohy.

Výstupní proměnné

Žádné

Poznámky

Konfigurace analýzy SonarQube byla přesunuta do rozšíření SonarQube nebo SonarCloud v úloze Připravit konfiguraci analýzy.

Důležité

Při použití -q možnosti v nástroji MAVEN_OPTSse efektivní pom nevygeneruje správně a informační kanály Azure Artifacts nemusí být možné ověřit.

Důležité

Pokud je verze sady JDK, kterou chcete použít, už ve vašem agentu nainstalovaná, nastavte javaHomeOption na path a nastavte jdkDirectory cestu k verzi sady JDK. Tyto možnosti nastavují proměnnou JAVA_HOME_11_X64 prostředí, kterou vyžaduje úloha Mavenu. Tato proměnná prostředí se nastaví automaticky, pokud používáte úlohu instalačního programu nástroje Java.

Časté otázky

Mám projekt s více moduly, ale sestavení selhává. Co mám zkontrolovat?

Ujistěte se, že jste zadali #codeCoverageClassFilesDirectories a #codeCoverageSourceDirectories jako vstup úkolu. Tyto dva parametry jsou volitelné pro jeden modulový projekt, ale vyžadují se pro projekty s více moduly.

Příklady

Požadavky

Požadavek Popis
Typy kanálů YAML, classic build, verze Classic
Spustí se Agent, DeploymentGroup
Požadavky Agenti v místním prostředí musí mít funkce , které odpovídají následujícím požadavkům na spouštění úloh, které používají tuto úlohu: maven
Možnosti Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze.
Omezení příkazů Všechny
Nastavitelné proměnné Všechny
Verze agenta 1.89.0 nebo vyšší
Kategorie úloh Sestavení

Viz také