共用方式為


Maven@1 - Maven v1 工作

使用此工作來建置 Apache Maven。

Syntax

# Maven v1
# Build with Apache Maven.
- task: Maven@1
  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 TFS/Team Services. Default: true.
    testResultsFiles: '**/TEST-*.xml' # string. Required when publishJUnitResults = true. Test Results Files. Default: **/TEST-*.xml.
    #testRunTitle: # string. Optional. Use when publishJUnitResults = true. Test Run Title. 
  # 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.
  # Advanced
    javaHomeOption: 'JDKVersion' # 'JDKVersion' | 'Path'. Alias: javaHomeSelection. Required. Set JAVA_HOME by. Default: JDKVersion.
    #jdkVersionOption: 'default' # 'default' | '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: true # boolean. Alias: mavenFeedAuthenticate. Authenticate built-in Maven feeds. Default: true.
  # Code Analysis
    #sonarQubeRunAnalysis: false # boolean. Alias: sqAnalysisEnabled. Run SonarQube Analysis. Default: false.
    #sonarQubeServiceEndpoint: # string. Alias: sqConnectedServiceName. Required when sqAnalysisEnabled = true. SonarQube Endpoint. 
    #sonarQubeProjectName: # string. Alias: sqProjectName. Optional. Use when sqAnalysisEnabled = true. SonarQube Project Name. 
    #sonarQubeProjectKey: # string. Alias: sqProjectKey. Optional. Use when sqAnalysisEnabled = true. SonarQube Project Key. 
    #sonarQubeProjectVersion: # string. Alias: sqProjectVersion. Optional. Use when sqAnalysisEnabled = true. SonarQube Project Version. 
    #sonarQubeSpecifyDB: false # boolean. Alias: sqDbDetailsRequired. Optional. Use when sqAnalysisEnabled = true. The SonarQube server version is lower than 5.2. Default: false.
    #sonarQubeDBUrl: # string. Alias: sqDbUrl. Optional. Use when sqDbDetailsRequired = true. Db Connection String. 
    #sonarQubeDBUsername: # string. Alias: sqDbUsername. Optional. Use when sqDbDetailsRequired = true. Db Username. 
    #sonarQubeDBPassword: # string. Alias: sqDbPassword. Optional. Use when sqDbDetailsRequired = true. Db User Password. 
    #sonarQubeIncludeFullReport: true # boolean. Alias: sqAnalysisIncludeFullReport. Optional. Use when sqAnalysisEnabled = true. Include full analysis report in the build summary (SQ 5.3+). Default: true.
    #sonarQubeFailWhenQualityGateFails: # boolean. Alias: sqAnalysisBreakBuildIfQualityGateFailed. Optional. Use when sqAnalysisEnabled = true. Fail the build on quality gate failure (SQ 5.3+). 
    #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.

輸入

mavenPOMFile - Maven POM 檔案
string. 必要。 預設值:pom.xml

指定從存放庫根目錄到 Maven POM 檔案的相對路徑。


goals - 目標 ()
string. 預設值:package


options - 選項
string.


publishJUnitResults - 發佈至 TFS/Team Services
boolean. 預設值:true

指定將 Maven 組建所產生的 JUnit 測試結果發佈至 TFS/Team Services 的選項。 每個測試結果檔案比對 Test Results Files 都會發佈為 TFS/Team Services 中的測試回合。


testResultsFiles - 測試結果檔案
string. 需要 。 publishJUnitResults = true 預設值:**/TEST-*.xml

指定要發佈之測試結果檔案的路徑和模式。 例如, **/TEST-*.xml 針對名稱開頭 TEST- 為 的所有 XML 檔案。 如果未指定根路徑,則會比對預設工作目錄下的檔案,其值可在 變數 $(System.DefaultWorkingDirectory) 中使用。 例如,的值 **/TEST-*.xml 實際上會產生 來自 $(System.DefaultWorkingDirectory)/**/TEST-*.xml 的相符檔案。


testRunTitle - 測試回合標題
string. 選擇性。 使用 時 publishJUnitResults = true

指定測試回合的名稱。


codeCoverageToolOption - 程式碼涵蓋範圍工具
輸入別名: codeCoverageToolstring. 允許值:NoneCoberturaJaCoCo。 預設值:None

指定程式碼涵蓋範圍工具。


codeCoverageClassFilter - 類別包含/排除篩選
輸入別名: classFilterstring. 選擇性。 使用 時 codeCoverageTool != None

指定要包含或排除類別的逗號分隔篩選清單,以收集程式碼涵蓋範圍。 例如: +:com.*,+:org.*,-:my.app*.*


codeCoverageClassFilesDirectories - 類別檔案目錄
輸入別名: classFilesDirectoriesstring. 選擇性。 使用 時 codeCoverageTool = JaCoCo

多模組專案需要此欄位。
指定從 Maven POM 檔案到包含類別檔案的目錄和封存檔案的逗號分隔清單, (JAR、WAR 等 ) 。 這些目錄中的類別檔案會報告程式碼涵蓋範圍。 例如: target/classes,target/testClasses


codeCoverageSourceDirectories - 原始程式檔目錄
輸入別名: srcDirectoriesstring. 選擇性。 使用 時 codeCoverageTool = JaCoCo

多模組專案需要此欄位。
指定從 Maven POM 檔案到原始程式碼目錄的相對路徑逗號分隔清單。 程式碼涵蓋範圍報告會使用這些報告來反白顯示原始程式碼。 例如: src/java,src/Test


codeCoverageFailIfEmpty - 遺失程式碼涵蓋範圍結果時失敗
輸入別名: failIfCoverageEmptyboolean. 選擇性。 使用 時 codeCoverageTool != None 。 預設值:false

如果程式碼涵蓋範圍未產生任何要發佈的結果,則建置會失敗。


javaHomeOption - 設定JAVA_HOME依據
輸入別名: javaHomeSelectionstring. 必要。 允許的值: JDKVersion (JDK 版本) 。 Path 預設值:JDKVersion

選取將在組建期間探索的 JDK 版本,或手動輸入 JDK 路徑來設定 JAVA_HOME


jdkVersionOption - JDK 版本
輸入別名: jdkVersionstring. 選擇性。 使用 時 javaHomeSelection = JDKVersion 。 允許的值: default1.9 (JDK 9) 、 1.8 (JDK 8) 、 (JDK 7) 、 1.71.6 (JDK 6) 。 預設值:default

嘗試探索所選 JDK 版本的路徑,並據以設定 JAVA_HOME


jdkDirectory - JDK 路徑
輸入別名: jdkUserInputPathstring. 需要 。 javaHomeSelection = Path

將 設定 JAVA_HOME 為指定的路徑。


jdkArchitectureOption - JDK 架構
輸入別名: jdkArchitecturestring. 選擇性。 使用 時 jdkVersion != default 。 允許值:x86x64。 預設值:x64

提供 JDK 的架構 (x86x64) 。


mavenVersionOption - Maven 版本
輸入別名: mavenVersionSelectionstring. 必要。 允許的值: DefaultPath (自訂路徑) 。 預設值:Default

使用預設 Maven 版本或指定自訂路徑中的版本。


mavenDirectory - Maven 路徑
輸入別名: mavenPathstring. 需要 。 mavenVersionSelection = Path

提供 Maven 安裝 (的自訂路徑,例如: /usr/share/maven) 。


mavenSetM2Home - 設定M2_HOME變數
boolean. 選擇性。 使用 時 mavenVersionSelection = Path 。 預設值:false

M2_HOME 變數設定為自訂 Maven 安裝路徑。


mavenOptions - 將MAVEN_OPTS設定為
輸入別名: mavenOptsstring. 預設值:-Xmx1024m

MAVEN_OPTS設定環境變數,用來傳送命令列引數來啟動 JVM。 旗 -Xmx 標會指定 JVM 可用的記憶體上限。


mavenAuthenticateFeed - 驗證內建 Maven 摘要
輸入別名: mavenFeedAuthenticateboolean. 預設值:true

使用 Azure Artifacts 摘要自動驗證。 如果成品摘要不在使用中,請取消選取此選項以加快組建速度。


sonarQubeRunAnalysis - 執行 SonarQube 分析
輸入別名: sqAnalysisEnabledboolean. 預設值:false

執行目前目標之後,執行 SonarQube 分析installpackage 目標應該先執行。


sonarQubeServiceEndpoint - SonarQube 端點
輸入別名: sqConnectedServiceNamestring. 當 時為 必要 sqAnalysisEnabled = true 專案。

指定 SonarQube 伺服器泛型端點。


sonarQubeProjectName - SonarQube 專案名稱
輸入別名: sqProjectNamestring. 選擇性。 使用 時機 sqAnalysisEnabled = true

指定 SonarQube 專案名稱,例如 sonar.projectName


sonarQubeProjectKey - SonarQube 專案金鑰
輸入別名: sqProjectKeystring. 選擇性。 使用 時機 sqAnalysisEnabled = true

指定 SonarQube 專案唯一索引鍵,例如 sonar.projectKey


sonarQubeProjectVersion - SonarQube 專案版本
輸入別名: sqProjectVersionstring. 選擇性。 使用 時機 sqAnalysisEnabled = true

指定 SonarQube 專案版本,例如 sonar.projectVersion


sonarQubeSpecifyDB - SonarQube 伺服器版本低於 5.2
輸入別名: sqDbDetailsRequiredboolean. 選擇性。 使用 時機 sqAnalysisEnabled = true 。 預設值:false

如果使用 SonarQube 伺服器 5.1 或更低版本,您必須指定資料庫連線詳細資料。


sonarQubeDBUrl - 資料庫連接字串
輸入別名: sqDbUrlstring. 選擇性。 使用 時機 sqDbDetailsRequired = true

僅適用于 SonarQube 伺服器 5.1 和更低版本。
指定 sonar.jdbc.urljdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor (或) 的資料庫連接設定。


sonarQubeDBUsername - 資料庫使用者名稱
輸入別名: sqDbUsernamestring. 選擇性。 使用 時機 sqDbDetailsRequired = true

僅適用于 SonarQube 伺服器 5.1 和更低版本。
指定資料庫使用者 (的使用者名稱, sonar.jdbc.username 例如) 。


sonarQubeDBPassword - 資料庫使用者密碼
輸入別名: sqDbPasswordstring. 選擇性。 使用 時機 sqDbDetailsRequired = true

僅適用于 SonarQube 伺服器 5.1 和更低版本。
指定資料庫使用者 (的密碼, sonar.jdbc.password 例如) 。


sonarQubeIncludeFullReport - 在組建摘要中包含完整分析報告, (SQ 5.3+)
輸入別名: sqAnalysisIncludeFullReportboolean. 選擇性。 使用 時機 sqAnalysisEnabled = true 。 預設值:true

此選項會延遲建置,直到 SonarQube 分析完成為止。


sonarQubeFailWhenQualityGateFails - (SQ 5.3+) ,使建置品質閘道失敗失敗
輸入別名: sqAnalysisBreakBuildIfQualityGateFailedboolean. 選擇性。 使用 時機 sqAnalysisEnabled = true

只有在使用 SonarQube 伺服器 5.3 或更新版本時,才能使用此選項。 引進延遲,因為建置必須等候 SonarQube 完成分析。 SonarQube 品質閘道的詳細資訊。


checkStyleRunAnalysis - 執行 Checkstyle
輸入別名: checkstyleAnalysisEnabledboolean. 預設值:false

使用預設的 Sun 檢查執行 Checkstyle 工具。 結果會上傳為組建成品。


pmdRunAnalysis - 執行 PMD
輸入別名: pmdAnalysisEnabledboolean. 預設值:false

使用 PMD 靜態分析工具來尋找程式碼中的 Bug。 結果會上傳為組建成品。


findBugsRunAnalysis - 執行 FindBugs
輸入別名: findbugsAnalysisEnabledboolean. 預設值:false

使用 FindBugs 靜態分析工具在程式碼中尋找 Bug。 結果會上傳為組建成品。


工作控制選項

除了工作輸入之外,所有工作都有控制選項。 如需詳細資訊,請參閱 控制項選項和一般工作屬性

輸出變數

無。

規格需求

需求 描述
管線類型 YAML、傳統組建、傳統版本
執行于 Agent、DeploymentGroup
要求 自我裝載代理程式必須具備符合下列需求的功能,才能執行使用此工作的作業:maven
Capabilities 此工作不符合作業中後續工作的任何需求。
命令限制 任意
Settable 變數 任意
代理程式版本 1.89.0 或更新版本
工作類別 組建

另請參閱