Maven@4 - Maven v4 タスク
Apache Maven を使用してビルド、テスト、デプロイする。
構文
# 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.
入力
mavenPOMFile
- Maven POM ファイル
string
. 必須です。 既定値: pom.xml
。
リポジトリ ルートから Maven POM ファイルへの相対パスを指定します。 詳細については、「 POM の概要 」を参照してください。
goals
- 目標
string
. 既定値: package
。
(省略可能)を に package
設定してコードをコンパイルし、それを .war ファイルにパッケージ化します。 この引数を空白のままにすると、ビルドは失敗します。 詳細については、「 Maven ビルド ライフサイクルの概要 」を参照してください。
options
- オプション
string
.
(省略可能)使用する Maven コマンド ライン オプションを指定します。
publishJUnitResults
- Azure Pipelines に発行する
boolean
. 既定値: true
。
Maven ビルドによって生成された JUnit テスト結果を Azure Pipelines に発行するオプションを指定します。 各テスト結果ファイルの一致 Test Results Files
は、Azure Pipelines でテスト実行として発行されます。
testResultsFiles
- テスト結果ファイル
string
. publishJUnitResults = true
の場合に必要です。 既定値: **/surefire-reports/TEST-*.xml
。
発行するテスト結果ファイルのパスとパターンを指定します。
ワイルドカードを使用できます。
ファイル一致パターンの詳細。
たとえば、 **/TEST-*.xml
名前が で始まるすべての XML ファイルについて TEST-
です。 ルート パスが指定されていない場合、ファイルは既定の作業ディレクトリの下で照合され、 の値は 変数 $(System.DefaultWorkingDirectory)
で使用できます。 たとえば、 の **/TEST-*.xml
値を指定すると、実際には から $(System.DefaultWorkingDirectory)/**/TEST-*.xml
ファイルが一致します。
testRunTitle
- テスト実行のタイトル
string
. 任意。 の場合は publishJUnitResults = true
を使用します。
テスト実行の名前を指定します。
allowBrokenSymlinks
- 壊れたシンボリック リンクを許可する
入力エイリアス: allowBrokenSymbolicLinks
。 boolean
. 任意。 の場合は publishJUnitResults = true
を使用します。 既定値: true
。
に false
設定すると、テスト結果の発行中にタスクが壊れたシンボリック リンクを見つけたときにビルドが失敗します。
codeCoverageToolOption
- コード カバレッジ ツール
入力エイリアス: codeCoverageTool
。 string
. 許可値: None
、Cobertura
、JaCoCo
。 既定値: None
。
コード カバレッジ ツールを指定します。 コード カバレッジを有効にすると、Maven の実行時にクリーン目標が Maven の目標リストに挿入されます。
codeCoverageClassFilter
- クラス包含/除外フィルター
入力エイリアス: classFilter
。 string
. 任意。 の場合は codeCoverageTool != None
を使用します。
コード カバレッジの収集に含めるか、クラスを除外するフィルターのコンマ区切りのリストを指定します。 たとえば、+:com.*,+:org.*,-:my.app*.*
のようにします。
codeCoverageClassFilesDirectories
- クラス ファイルディレクトリ
入力エイリアス: classFilesDirectories
。 string
. 任意。 の場合は codeCoverageTool = JaCoCo
を使用します。
このフィールドは、マルチモジュール プロジェクトに必要です。
Maven POM ファイルからクラス ファイルとアーカイブ ファイル (JAR、WAR など) を含むディレクトリへの相対パスのコンマ区切りのリストを指定します。 これらのディレクトリ内のクラス ファイルに対してコード カバレッジが報告されます。 たとえば、target/classes,target/testClasses
のようにします。
codeCoverageSourceDirectories
- ソース ファイルのディレクトリ
入力エイリアス: srcDirectories
。 string
. 任意。 の場合は codeCoverageTool = JaCoCo
を使用します。
このフィールドは、マルチモジュール プロジェクトに必要です。
Maven POM ファイルからソース コード ディレクトリへの相対パスのコンマ区切りリストを指定します。 コード カバレッジ レポートでは、これらを使用してソース コードが強調表示されます。 たとえば、src/java,src/Test
のようにします。
codeCoverageFailIfEmpty
- コード カバレッジの結果が見つからない場合に失敗する
入力エイリアス: failIfCoverageEmpty
。 boolean
. 任意。 の場合は codeCoverageTool != None
を使用します。 既定値: false
。
コード カバレッジで発行する結果が生成されなかった場合、ビルドが失敗します。
codeCoverageRestoreOriginalPomXml
- タスクの実行後に元のpom.xmlを復元する
入力エイリアス: restoreOriginalPomXml
。 boolean
. 任意。 の場合は codeCoverageTool != None
を使用します。 既定値: false
。
コード カバレッジが変更され、 pom.xml
結果が生成されます。 元 pom.xml
の を保持する必要がある場合は、このオプションを使用します。
javaHomeOption
- によってJAVA_HOMEを設定する
入力エイリアス: javaHomeSelection
。 string
. 必須です。 使用できる値: JDKVersion
(JDK バージョン)、 Path
。 既定値: JDKVersion
。
ビルド中に検出される JDK バージョンを選択するか、JDK パスを手動で入力して設定 JAVA_HOME
します。 エージェント コンピューターに Java が既にインストールされている場合は、JDK にインストールされているディレクトリへのパスとして path
と jdkDirectory
を設定javaHomeOption
して指定できます。
jdkVersionOption
- JDK バージョン
入力エイリアス: jdkVersion
。 string
. 任意。 の場合は javaHomeSelection = JDKVersion
を使用します。 使用できる値は、 default
1.17
、(JDK 17) 1.11
、(JDK 11)、 1.10
(JDK 10 (サポート対象外)、 1.9
(JDK 9 (サポート対象外) 1.8
、(JDK 8) 1.7
、(JDK 7) 1.6
、(JDK 6 (サポート対象外)) です。 既定値: default
。
選択した JDK バージョンへのパスを検出し、それに応じて設定 JAVA_HOME
します。
メモ: Microsoft によってホストされていないエージェントで実行されていて、要求された Java バージョンがエージェント コンピューターで設定された変数によって JAVA_HOME
示されていない場合、タスクは変数 JAVA_HOME_{version}_{arch}
(例: JAVA_HOME_8_X64
) に依存して必要な JDK を見つけます。 このパラメーターまたは jdkArchitecture
によって要求される可能性がある JDK のバージョンとアーキテクチャに対して、セルフホステッド エージェントでこの変数が設定されていることを確認します。
jdkDirectory
- JDK パス
入力エイリアス: jdkUserInputPath
。 string
. javaHomeSelection = Path
の場合に必要です。
指定したパスに設定 JAVA_HOME
します。
jdkArchitectureOption
- JDK アーキテクチャ
入力エイリアス: jdkArchitecture
。 string
. 任意。 の場合は jdkVersion != default
を使用します。 使用できる値: x86
、x64
。 既定値: x64
。
JDK のアーキテクチャ (x86
、 x64
) を提供します。
mavenVersionOption
- Maven のバージョン
入力エイリアス: mavenVersionSelection
。 string
. 必須です。 使用できる値: Default
、 Path
(カスタム パス)。 既定値: Default
。
既定の Maven バージョンまたは指定したカスタム パス内のバージョンを指定します。
mavenDirectory
- Maven パス
入力エイリアス: mavenPath
。 string
. mavenVersionSelection = Path
の場合に必要です。
Maven インストールへのカスタム パスを指定します (例: /usr/share/maven
)。
mavenSetM2Home
- 変数M2_HOME設定する
boolean
. 任意。 の場合は mavenVersionSelection = Path
を使用します。 既定値: false
。
変数を M2_HOME
カスタム Maven インストール パスに設定します。
mavenOptions
- MAVEN_OPTSを に設定する
入力エイリアス: mavenOpts
。 string
. 既定値: -Xmx1024m
。
環境変数を設定します MAVEN_OPTS
。これは、JVM を開始するためにコマンド ライン引数を送信するために使用されます。 フラグは -Xmx
、JVM で使用可能な最大メモリを指定します。
mavenAuthenticateFeed
- Artifacts フィードを使用した認証
入力エイリアス: mavenFeedAuthenticate
。 boolean
. 既定値: false
。
Azure Artifacts フィードを使用して自動的に認証します。 Artifacts フィードが使用されていない場合は、このオプションをオフにしてビルドを高速化します。
effectivePomSkip
- Artifacts フィードを使用した認証中に有効な POM の生成をスキップする
入力エイリアス: skipEffectivePom
。 boolean
. 既定値: false
。
POM のみを使用して Artifacts フィードを使用して認証します。
sonarQubeRunAnalysis
- SonarQube または SonarCloud 分析を実行する
入力エイリアス: sqAnalysisEnabled
。 boolean
. 既定値: false
。
このオプションは、Maven タスクのバージョン 1 の使用から、SonarQube および SonarCloud マーケットプレース拡張機能の使用に変更されました。
[ゴール] フィールドで目標を実行した後、SonarQube または SonarCloud 分析を実行するには、このオプションを有効にします。 最初にインストールまたはパッケージの目標を実行する必要があります。 この Maven タスクの前に、いずれかの拡張機能からビルド パイプラインに 分析構成の準備 タスクを追加する必要もあります。
isJacocoCoverageReportXML
- SonarQube 分析に XML Jacoco レポートを使用する
boolean
. 任意。 の場合は sqAnalysisEnabled = true && codeCoverageTool = JaCoCo
を使用します。 既定値: false
。
SonarQube 分析に XML Jacoco レポートを使用します。 テスト レポートの詳細については、こちらを参照してください。
sqMavenPluginVersionChoice
- Maven バージョンの SonarQube スキャナー
string
. sqAnalysisEnabled = true
の場合に必要です。 使用できる値: latest
(最新リリースを使用) pom
、(pom.xmlで宣言されているバージョンを使用します)。 既定値: latest
。
使用する SonarQube Maven プラグインのバージョンを指定します。 最新バージョンを使用することも、 のバージョンに依存することもできます pom.xml
。
checkStyleRunAnalysis
- Checkstyle を実行する
入力エイリアス: checkstyleAnalysisEnabled
。 boolean
. 既定値: false
。
既定の Sun チェックを使用して Checkstyle ツールを実行します。 ファイルに Checkstyle 構成が指定されていない場合は、既定の pom.xml
Sun チェックが使用されます。 結果はビルド成果物としてアップロードされます。
pmdRunAnalysis
- PMD を実行する
入力エイリアス: pmdAnalysisEnabled
。 boolean
. 既定値: false
。
PMD 静的分析ツールを使用して、コード内のバグを探します。 結果はビルド成果物としてアップロードされます。
findBugsRunAnalysis
- FindBugs を実行する
入力エイリアス: findbugsAnalysisEnabled
。 boolean
. 既定値: false
。
FindBugs 静的分析ツールを使用して、コード内のバグを検索します。 結果はビルド成果物としてアップロードされます。
spotBugsRunAnalysis
- SpotBugs 分析を実行する
入力エイリアス: spotBugsAnalysisEnabled
。 boolean
. 既定値: false
。
SpotBugs コード分析プラグインを実行するには、このオプションを有効にします。 SpotBugs Maven プラグインの詳細。
spotBugsVersion
- バージョン番号
入力エイリアス: spotBugsMavenPluginVersion
。 string
. 任意。 の場合は spotBugsAnalysisEnabled = true
を使用します。 既定値: 4.5.3.0
。
SpotBugs の使用可能なバージョンについて説明します。
spotBugsGoal
- スポットバグ プラグインの目標
string
. 任意。 の場合は spotBugsAnalysisEnabled = true
を使用します。 使用できる値: spotbugs
("スポットバグ" - 検出されたバグ check
に関するレポートを作成します)、("チェック" - バグが検出された場合、パイプラインは失敗します。 既定値: spotbugs
。
プラグインの目標を指定します。 SpotBugs の目標の詳細については、こちらを参照してください。
failWhenBugsFound
- スポットバグでバグが見つかった場合に失敗する:チェック
入力エイリアス: spotBugsFailWhenBugsFound | sbFailWhenBugsFound
。 boolean
. 任意。 の場合は spotBugsAnalysisEnabled = true && spotBugsGoal = check
を使用します。 既定値: true
。
[ゴールの確認] が指定されている場合、バグが見つかると失敗します。 SpotBug パラメーターの詳細については、こちらを参照してください。
タスク制御オプション
すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「 コントロール オプションと一般的なタスク プロパティ」を参照してください。
出力変数
[なし] :
解説
SonarQube 分析の構成は、分析構成の準備タスクの SonarQube または SonarCloud 拡張機能に移動されました。
重要
で オプションを-q
MAVEN_OPTS
使用すると、有効な pom が正しく生成されず、Azure Artifacts フィードが認証されない可能性があります。
重要
使用する JDK バージョンがエージェントに既にインストールされている場合は、 を に設定 javaHomeOption
し、 を path
JDK バージョンのパスに設定 jdkDirectory
します。 これらのオプションは JAVA_HOME_11_X64
、Maven タスクに必要な環境変数を設定します。 Java Tool インストーラー タスクを使用している場合、この環境変数は自動的に設定されます。
よく寄せられる質問
マルチモジュール プロジェクトがありますが、ビルドが失敗しています。 何をチェックすればよいですか?
と をタスク入力として指定#codeCoverageClassFilesDirectories
#codeCoverageSourceDirectories
していることを確認します。 これら 2 つのパラメーターは、1 つのモジュール プロジェクトでは省略可能ですが、マルチモジュール プロジェクトでは必須です。
例
必要条件
要件 | 説明 |
---|---|
パイプラインの種類 | YAML、クラシック ビルド、クラシック リリース |
実行日 | エージェント、DeploymentGroup |
確認要求 | セルフホステッド エージェントには、このタスクを使用するジョブを実行するための次の要求に一致する機能が必要です。 |
Capabilities | このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。 |
コマンドの制限 | Any |
設定可能な変数 | Any |
エージェントのバージョン | 1.89.0 以上 |
タスクのカテゴリ | Build |