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 jdkArchitecture
pož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.xml
souboru .
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_OPTS
se 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é
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro