Maven@1 - Maven v1 任务
使用此任务通过 Apache Maven 进行生成。
语法
# 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) 、 1.7
(JDK 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 |
功能 | 此任务不满足作业中后续任务的任何要求。 |
命令限制 | 任意 |
可设置变量 | 任意 |
代理版本 | 1.89.0 或更高版本 |
任务类别 | 构建 |