Ant 任务

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

使用此任务生成 Apache Ant。

需求

生成代理必须具有以下功能:

  • Apache Ant

YAML 代码段

# Ant
# Build with Apache Ant
- task: Ant@1
  inputs:
    #buildFile: 'build.xml' 
    #options: # Optional
    #targets: # Optional
    #publishJUnitResults: true 
    #testResultsFiles: '**/TEST-*.xml' # Required when publishJUnitResults == True
    #testRunTitle: # Optional
    #codeCoverageToolOptions: 'None' # Optional. Options: none, cobertura, jaCoCo
    #codeCoverageClassFilesDirectories: '.' # Required when codeCoverageToolOptions != None
    #codeCoverageClassFilter: # Optional. Comma-separated list of filters to include or exclude classes from collecting code coverage. For example: +:com.*,+:org.*,-:my.app*.*
    #codeCoverageSourceDirectories: # Optional
    #codeCoverageFailIfEmpty: false # Optional
    #antHomeDirectory: # Optional
    #javaHomeOption: 'JDKVersion' # Options: jDKVersion, path
    #jdkVersionOption: 'default' # Optional. Options: default, 1.11, 1.10, 1.9, 1.8, 1.7, 1.6
    #jdkUserInputDirectory: # Required when javaHomeOption == Path
    #jdkArchitectureOption: 'x64' # Optional. Options: x86, x64

自变量

参数 说明
antBuildFile
Ant 生成文件
(需要从存储库根路径到 Ant 生成文件) 相对路径。
有关生成文件的详细信息,请参阅 Using Apache Ant
默认值: build.xml
参数别名: buildFile
options
选项
要传递到 Ant 命令行 (可选) 选项。 你可以提供自己的属性 (例如, -DmyProperty=myPropertyValue) ,还可以使用内置变量 (例如 -DcollectionId=$(system.collectionId)) 。 此外,内置变量已经在生成过程中设置为环境变量,并且可以直接传递 (例如 -DcollectionIdAsEnvVar=%SYSTEM_COLLECTIONID%) 。

请参阅 运行 Apache Ant

targets
目标
(可选) 目标 () for Ant 为此生成执行。

请参阅 使用 Apache Ant 目标

JUnit 测试结果选项

参数 说明
publishJUnitResults
发布到 Azure Pipelines
(必需) 选择此选项可将 Ant 生成生成的 JUnit 测试结果发布到 Azure Pipelines 或本地 Team Foundation Server。 与测试结果文件相匹配的每个测试结果文件都作为测试运行发布。
默认值:true
testResultsFiles
测试结果文件
(需要) 测试结果文件路径。 可以使用通配符。 例如, */TEST-.xml 对于名称以 TEST-开头的所有 xml 文件。
默认值: * */TEST-* .xml
testRunTitle
测试运行标题
(可选) 为此生成的 JUnit 测试用例结果指定标题。

代码覆盖率选项

参数 说明
codeCoverageTool
代码覆盖率工具

(可选) 选择要使用的代码覆盖率工具。

如果你使用的是 Microsoft 托管的代理,则会为你设置工具。 如果使用本地Windows 代理,则如果选择:

  • JaCoCo,请确保在 Ant 安装的 lib 文件夹中提供 jacocoant。 请参阅 JaCoCo
  • Cobertura,COBERTURA_HOME 指向 Cobertura 文件位置设置环境变量。 请参阅 Cobertura

选择其中一个工具后,将显示以下参数。


默认值: 无
参数别名: codeCoverageToolOptions
classFilesDirectories
类文件目录

(必需) 指定从 Ant 生成文件到包含类文件的目录的以逗号分隔的相对路径列表、存档文件 (如 .jar 和 war) 。 为目录中存在的类文件报告代码覆盖率。 将以递归方式搜索类文件的目录和存档。
例如: target/类、target/testClasses。


默认值:。
参数别名: codeCoverageClassFilesDirectories
classFilter
类包含/排除筛选器

(可选) 指定以逗号分隔的筛选器列表,以包含或排除类以收集代码覆盖率。 例如:+:com.,+:org.,-:my.app.


参数别名: codeCoverageClassFilter
srcDirectories
源文件目录

(可选) 指定从 Ant 生成文件到你的源目录的相对路径的逗号分隔列表。 代码覆盖率报表将使用这些路径来突出显示源代码。 例如: src/java,src/Test。


参数别名: codeCoverageSourceDirectories
failIfCoverageEmpty
缺少代码覆盖率结果时失败

(可选) 如果代码覆盖率未产生任何要发布的结果,则生成将失败


默认值:false
参数别名: codeCoverageFailIfEmpty

高级选项

参数 说明
antHomeUserInputPath
设置 ANT_HOME 路径
(可选) 如果设置,则将用给定路径覆盖任何现有的 ANT_HOME 环境变量。
参数别名: antHomeDirectory
javaHomeSelection
设置 JAVA_HOME
(必需) 通过选择将在生成期间发现的 JDK 版本或通过手动输入 JDK 路径来设置 JAVA_HOME。
默认值: JDKVersion
参数别名: javaHomeOption
jdkVersion
JDK 版本
(可选) 会尝试发现所选 JDK 版本的路径,并相应地设置 JAVA_HOME。
默认值:默认值
参数别名: jdkVersionOption
jdkUserInputPath
JDK 路径
(必需) 将 JAVA_HOME 到给定路径
参数别名: jdkUserInputDirectory
jdkArchitecture
JDK 体系结构
(可选) 可以选择提供 (x86、x64) x86 的体系结构。
默认值: x64
参数别名: jdkArchitectureOption

任务控制选项

开源

此任务在 GitHub 上开放源代码。 欢迎提供反馈和建议。

常见问题解答

需要使用代理吗?

至少需要一个代理才能运行生成或发布。

我遇到了问题。 如何对其进行故障排除?

请查看排查生成和发布问题

我无法选择默认代理池,无法将生成或发布排队。 如何修复此问题?

请查看代理池

我的 NuGet 推送任务失败,出现“错误: 无法获取本地颁发者证书”错误。 如何解决此问题?

可通过添加受信任的根证书来解决此问题。 可将环境变量 NODE_EXTRA_CA_CERTS=file 添加到生成代理,也可在管道中添加任务变量 NODE.EXTRA.CA.CERTS=file。 有关此变量的更多详细信息,请参阅 Node.js 文档。 有关在管道中设置变量的说明,请参阅在管道中设置变量

我在本地使用 TFS,但没有看到其中某些功能。 为什么看不到?

其中某些功能仅在 Azure Pipelines 上可用,在本地尚不可用。 如果你已升级到最新版本的 TFS,则可在本地使用这些功能。