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
- 程式碼涵蓋範圍工具
輸入別名: codeCoverageTool
。 string
. 允許值:None
、Cobertura
、JaCoCo
。 預設值:None
。
指定程式碼涵蓋範圍工具。
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
。
如果程式碼涵蓋範圍未產生任何要發佈的結果,則建置會失敗。
javaHomeOption
- 設定JAVA_HOME依據
輸入別名: javaHomeSelection
。 string
. 必要。 允許的值: JDKVersion
(JDK 版本) 。 Path
預設值:JDKVersion
。
選取將在組建期間探索的 JDK 版本,或手動輸入 JDK 路徑來設定 JAVA_HOME
。
jdkVersionOption
- JDK 版本
輸入別名: jdkVersion
。 string
. 選擇性。 使用 時 javaHomeSelection = JDKVersion
。 允許的值: default
、 1.9
(JDK 9) 、 1.8
(JDK 8) 、 (JDK 7) 、 1.7
1.6
(JDK 6) 。 預設值:default
。
嘗試探索所選 JDK 版本的路徑,並據以設定 JAVA_HOME
。
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
- 驗證內建 Maven 摘要
輸入別名: mavenFeedAuthenticate
。 boolean
. 預設值:true
。
使用 Azure Artifacts 摘要自動驗證。 如果成品摘要不在使用中,請取消選取此選項以加快組建速度。
sonarQubeRunAnalysis
- 執行 SonarQube 分析
輸入別名: sqAnalysisEnabled
。 boolean
. 預設值:false
。
執行目前目標之後,執行 SonarQube 分析 。 install
或 package
目標應該先執行。
sonarQubeServiceEndpoint
- SonarQube 端點
輸入別名: sqConnectedServiceName
。 string
. 當 時為 必要 sqAnalysisEnabled = true
專案。
指定 SonarQube 伺服器泛型端點。
sonarQubeProjectName
- SonarQube 專案名稱
輸入別名: sqProjectName
。 string
. 選擇性。 使用 時機 sqAnalysisEnabled = true
。
指定 SonarQube 專案名稱,例如 sonar.projectName
。
sonarQubeProjectKey
- SonarQube 專案金鑰
輸入別名: sqProjectKey
。 string
. 選擇性。 使用 時機 sqAnalysisEnabled = true
。
指定 SonarQube 專案唯一索引鍵,例如 sonar.projectKey
。
sonarQubeProjectVersion
- SonarQube 專案版本
輸入別名: sqProjectVersion
。 string
. 選擇性。 使用 時機 sqAnalysisEnabled = true
。
指定 SonarQube 專案版本,例如 sonar.projectVersion
。
sonarQubeSpecifyDB
- SonarQube 伺服器版本低於 5.2
輸入別名: sqDbDetailsRequired
。 boolean
. 選擇性。 使用 時機 sqAnalysisEnabled = true
。 預設值:false
。
如果使用 SonarQube 伺服器 5.1 或更低版本,您必須指定資料庫連線詳細資料。
sonarQubeDBUrl
- 資料庫連接字串
輸入別名: sqDbUrl
。 string
. 選擇性。 使用 時機 sqDbDetailsRequired = true
。
僅適用于 SonarQube 伺服器 5.1 和更低版本。
指定 sonar.jdbc.url
jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor
(或) 的資料庫連接設定。
sonarQubeDBUsername
- 資料庫使用者名稱
輸入別名: sqDbUsername
。 string
. 選擇性。 使用 時機 sqDbDetailsRequired = true
。
僅適用于 SonarQube 伺服器 5.1 和更低版本。
指定資料庫使用者 (的使用者名稱, sonar.jdbc.username
例如) 。
sonarQubeDBPassword
- 資料庫使用者密碼
輸入別名: sqDbPassword
。 string
. 選擇性。 使用 時機 sqDbDetailsRequired = true
。
僅適用于 SonarQube 伺服器 5.1 和更低版本。
指定資料庫使用者 (的密碼, sonar.jdbc.password
例如) 。
sonarQubeIncludeFullReport
- 在組建摘要中包含完整分析報告, (SQ 5.3+)
輸入別名: sqAnalysisIncludeFullReport
。 boolean
. 選擇性。 使用 時機 sqAnalysisEnabled = true
。 預設值:true
。
此選項會延遲建置,直到 SonarQube 分析完成為止。
sonarQubeFailWhenQualityGateFails
- (SQ 5.3+) ,使建置品質閘道失敗失敗
輸入別名: sqAnalysisBreakBuildIfQualityGateFailed
。 boolean
. 選擇性。 使用 時機 sqAnalysisEnabled = true
。
只有在使用 SonarQube 伺服器 5.3 或更新版本時,才能使用此選項。 引進延遲,因為建置必須等候 SonarQube 完成分析。 SonarQube 品質閘道的詳細資訊。
checkStyleRunAnalysis
- 執行 Checkstyle
輸入別名: checkstyleAnalysisEnabled
。 boolean
. 預設值:false
。
使用預設的 Sun 檢查執行 Checkstyle 工具。 結果會上傳為組建成品。
pmdRunAnalysis
- 執行 PMD
輸入別名: pmdAnalysisEnabled
。 boolean
. 預設值:false
。
使用 PMD 靜態分析工具來尋找程式碼中的 Bug。 結果會上傳為組建成品。
findBugsRunAnalysis
- 執行 FindBugs
輸入別名: findbugsAnalysisEnabled
。 boolean
. 預設值:false
。
使用 FindBugs 靜態分析工具在程式碼中尋找 Bug。 結果會上傳為組建成品。
工作控制選項
除了工作輸入之外,所有工作都有控制選項。 如需詳細資訊,請參閱 控制項選項和一般工作屬性。
輸出變數
無。
規格需求
需求 | 描述 |
---|---|
管線類型 | YAML、傳統組建、傳統版本 |
執行于 | Agent、DeploymentGroup |
要求 | 自我裝載代理程式必須具備符合下列需求的功能,才能執行使用此工作的作業:maven |
Capabilities | 此工作不符合作業中後續工作的任何需求。 |
命令限制 | 任意 |
Settable 變數 | 任意 |
代理程式版本 | 1.89.0 或更新版本 |
工作類別 | 組建 |