Gradle@3 - Gradle v3 任务

使用此任务使用 Gradle 包装器脚本进行生成。

语法

# Gradle v3
# Build using a Gradle wrapper script.
- task: Gradle@3
  inputs:
    gradleWrapperFile: 'gradlew' # string. Alias: wrapperScript. Required. Gradle wrapper. Default: gradlew.
    #workingDirectory: # string. Alias: cwd. Working directory. 
    #options: # string. Options. 
    tasks: 'build' # string. Required. Tasks. Default: build.
  # JUnit Test Results
    #publishJUnitResults: true # boolean. Publish to Azure Pipelines. 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.
    codeCoverageClassFilesDirectories: 'build/classes/main/' # string. Alias: classFilesDirectories. Required when codeCoverageTool != None. Class files directories. Default: build/classes/main/.
    #codeCoverageClassFilter: # string. Alias: classFilter. Optional. Use when codeCoverageTool != None. Class inclusion/exclusion filters. 
    #codeCoverageFailIfEmpty: false # boolean. Alias: failIfCoverageEmpty. Optional. Use when codeCoverageTool != None. Fail when code coverage results are missing. Default: false.
    #codeCoverageGradle5xOrHigher: true # boolean. Alias: gradle5xOrHigher. Optional. Use when codeCoverageTool = JaCoCo. Gradle version >= 5.x. Default: true.
  # Advanced
    javaHomeOption: 'JDKVersion' # 'JDKVersion' | 'Path'. Alias: javaHomeSelection. Required. Set JAVA_HOME by. Default: JDKVersion.
    #jdkVersionOption: 'default' # 'default' | '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.
    #gradleOptions: '-Xmx1024m' # string. Alias: gradleOpts. Set GRADLE_OPTS. Default: -Xmx1024m.
  # Code Analysis
    #sonarQubeRunAnalysis: false # boolean. Alias: sqAnalysisEnabled. Run SonarQube or SonarCloud Analysis. Default: false.
    #sqGradlePluginVersionChoice: 'specify' # 'specify' | 'build'. Required when sqAnalysisEnabled = true. SonarQube scanner for Gradle version. Default: specify.
    #sonarQubeGradlePluginVersion: '2.6.1' # string. Alias: sqGradlePluginVersion. Required when sqAnalysisEnabled = true && sqGradlePluginVersionChoice = specify. SonarQube scanner for Gradle plugin version. Default: 2.6.1.
    #checkStyleRunAnalysis: false # boolean. Alias: checkstyleAnalysisEnabled. Run Checkstyle. Default: false.
    #findBugsRunAnalysis: false # boolean. Alias: findbugsAnalysisEnabled. Run FindBugs. Default: false.
    #pmdRunAnalysis: false # boolean. Alias: pmdAnalysisEnabled. Run PMD. Default: false.
    #spotBugsAnalysis: false # boolean. Alias: spotBugsAnalysisEnabled. Run SpotBugs. Default: false.
    #spotBugsGradlePluginVersionChoice: 'specify' # 'specify' | 'build'. Required when spotBugsAnalysisEnabled = true. Spotbugs plugin version. Default: specify.
    #spotbugsGradlePluginVersion: '4.7.0' # string. Required when spotBugsAnalysisEnabled = true && spotBugsGradlePluginVersionChoice = specify. Version number. Default: 4.7.0.

输入

gradleWrapperFile - Gradle 包装器
输入别名: wrapperScriptstring. 必需。 默认值:gradlew

指定 gradlew 将用于生成的存储库中的包装器位置。 Windows (上的代理(包括 Microsoft 托管的代理) )必须使用 gradlew.bat 包装器。 Linux 或 macOS 上的代理可以使用 gradlew shell 脚本。 详细了解 Gradle 包装器


workingDirectory - 工作目录
输入别名: cwdstring.

指定要运行 Gradle 生成的工作目录。 如果未指定工作目录,则任务使用存储库根目录。


options - 选项
string.

指定将传递给 Gradle 包装器的命令行选项。 有关详细信息 ,请参阅 Gradle 命令行


tasks - 任务
string. 必需。 默认值:build

(Gradle 要执行的任务) 。 任务名称列表应用空格分隔,并且可以从 gradlew tasks 命令提示符发出。

有关详细信息 ,请参阅 Gradle 生成脚本基础知识


publishJUnitResults - 发布到 Azure Pipelines
boolean. 默认值:true

将 Gradle 生成生成的 JUnit 测试结果发布到 Azure Pipelines。 该任务将匹配 Test Results Files 的每个测试结果文件发布为 Azure Pipelines 中的测试运行。


testResultsFiles - 测试结果文件
string. 当 时 publishJUnitResults = true是必需的。 默认值:**/TEST-*.xml

测试结果的文件路径。 可以使用通配符。 例如, **/TEST-*.xml 对于名称以 TEST-开头的所有 XML 文件。


testRunTitle - 测试运行标题
string. 可选。 在 时 publishJUnitResults = true使用 。

提供此版本的 JUnit 测试用例结果的名称。


codeCoverageToolOption - 代码覆盖率工具
输入别名: codeCoverageToolstring. 允许的值:NoneCoberturaJaCoCo。 默认值:None

指定代码覆盖率工具,用于确定生成的测试用例所涵盖的代码。


codeCoverageClassFilesDirectories - 类文件目录
输入别名: classFilesDirectoriesstring. 当 时 codeCoverageTool != None是必需的。 默认值:build/classes/main/

包含类文件和存档文件的目录的逗号分隔列表 (.jar、.war 等) 。 报告这些目录中的类文件的代码覆盖率。 通常,任务在 (下 build/classes/java/main 搜索 Gradle 4+) 的类,这是 Gradle 生成的默认类目录。


codeCoverageClassFilter - 类包含/排除筛选器
输入别名: classFilterstring. 可选。 在 时 codeCoverageTool != None使用 。

以逗号分隔的筛选器列表,用于包括或排除从收集代码覆盖率的类。 例如: +:com.*+:org.*-:my.app*.*


codeCoverageFailIfEmpty - 缺少代码覆盖率结果时失败
输入别名: failIfCoverageEmptyboolean. 可选。 在 时 codeCoverageTool != None使用 。 默认值:false

如果代码覆盖率未生成任何要发布的结果,则生成失败。


codeCoverageGradle5xOrHigher - Gradle 版本 >= 5.x
输入别名: gradle5xOrHigherboolean. 可选。 在 时 codeCoverageTool = JaCoCo使用 。 默认值:true

如果 gradle 版本 >为 = 5.x,则将此设置为“true”。


javaHomeOption - 设置JAVA_HOME依据
输入别名: javaHomeSelectionstring. 必需。 允许的值: JDKVersion (JDK 版本) 。 Path 默认值:JDKVersion

通过选择任务在生成期间发现的 JDK 版本或通过手动输入 JDK 路径来设置JAVA_HOME。


jdkVersionOption - JDK 版本
输入别名: jdkVersionstring. 可选。 在 时 javaHomeSelection = JDKVersion使用 。 允许的值: default1.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。


jdkDirectory - JDK 路径
输入别名: jdkUserInputPathstring. 当 时 javaHomeSelection = Path是必需的。

将JAVA_HOME设置为给定路径。


jdkArchitectureOption - JDK 体系结构
输入别名: jdkArchitecturestring. 可选。 在 时 jdkVersion != default使用 。 允许的值:x86x64。 默认值:x64

(x86 或 x64) 提供 JDK 体系结构。


gradleOptions - 设置GRADLE_OPTS
输入别名: gradleOptsstring. 默认值:-Xmx1024m

设置GRADLE_OPTS环境变量,用于发送命令行参数以启动 JVM。 标志 xmx 指定 JVM 可用的最大内存。


sonarQubeRunAnalysis - 运行 SonarQube 或 SonarCloud 分析
输入别名: sqAnalysisEnabledboolean. 默认值:false

此选项已从 Gradle 任务版本 1 更改为使用 SonarQubeSonarCloud 市场扩展。 启用此选项可在执行“任务”字段中的任务后运行 SonarQube 或 SonarCloud 分析。 还必须在此 Gradle 任务之前,将某个扩展中的 准备分析配置 任务添加到生成管道。


sqGradlePluginVersionChoice - 适用于 Gradle 版本的 SonarQube 扫描仪
string. 在 时 sqAnalysisEnabled = true是必需的。 允许的值: specify (指定版本号) , build (使用 build.gradle) 中应用的插件。 默认值:specify

指定要使用的 SonarQube Gradle 插件版本。 在 Gradle 配置文件中声明版本,或使用此字符串指定版本。


sonarQubeGradlePluginVersion - 适用于 Gradle 插件版本的 SonarQube 扫描程序
输入别名: sqGradlePluginVersionstring. 在 时 sqAnalysisEnabled = true && sqGradlePluginVersionChoice = specify是必需的。 默认值:2.6.1

包含 SonarQube Gradle 插件的版本号。


checkStyleRunAnalysis - 运行检查方式
输入别名: checkstyleAnalysisEnabledboolean. 默认值:false

使用默认的 Sun 检查运行 Checkstyle 工具。 结果作为生成项目上传。


findBugsRunAnalysis - 运行 FindBugs
输入别名: findbugsAnalysisEnabledboolean. 默认值:false

使用 FindBugs 静态分析工具查找代码中的 bug。 结果作为生成项目上传。 在 Gradle 6.0 中, 已删除此插件。 请改用 SpotBugs 插件。


pmdRunAnalysis - 运行 PMD
输入别名: pmdAnalysisEnabledboolean. 默认值:false

使用 PMD Java 静态分析工具查找代码中的 bug。 结果作为生成项目上传。


spotBugsAnalysis - 运行 SpotBugs
输入别名: spotBugsAnalysisEnabledboolean. 默认值:false

在 时true运行spotBugs。 此插件适用于 Gradle v5.6 或更高版本。 详细了解 如何使用 SpotBugs Gradle 插件。 该插件可能以意外的方式工作,或者根本不适用于早期 Gradle 版本。


spotBugsGradlePluginVersionChoice - Spotbugs 插件版本
string. 在 时 spotBugsAnalysisEnabled = true是必需的。 允许的值: specify (指定版本号) , build (使用 build.gradle) 中应用的插件。 默认值:specify

指定要使用的 SpotBugs Gradle 插件版本。 版本可以在 Gradle 配置文件中声明,也可以在此字符串中指定版本。


spotbugsGradlePluginVersion - 版本号
string. 在 时 spotBugsAnalysisEnabled = true && spotBugsGradlePluginVersionChoice = specify是必需的。 默认值:4.7.0

包含 SpotBugs Gradle 插件的版本号。


任务控件选项

除任务输入外,所有任务都有控制选项。 有关详细信息,请参阅 控制选项和常见任务属性

输出变量

无。

备注

SonarQube 分析的配置已移动到任务 Prepare Analysis Configuration中的 SonarQubeSonarCloud 扩展。

使用此任务使用 Gradle 包装器脚本进行生成。

如何实现从 Gradle 项目生成包装器?

Gradle 包装器允许生成代理下载并配置签入存储库的确切 Gradle 环境,而无需在生成代理本身上进行除 JVM 以外的任何软件配置。

  1. 通过从 build.gradle 所在的根项目目录发出以下命令来创建 Gradle 包装器:

    jamal@fabrikam> gradle wrapper

  2. 将 Gradle 包装器上传到远程存储库。

    gradle 包装器 (生成的二进制项目位于 gradle/wrapper/gradle-wrapper.jar) 。 此二进制文件很小,不需要更新。 如果需要更改生成代理上运行的 Gradle 配置,请更新 gradle-wrapper.properties

    存储库应如下所示:

|-- gradle/
    `-- wrapper/
        `-- gradle-wrapper.jar
        `-- gradle-wrapper.properties
|-- src/
|-- .gitignore
|-- build.gradle
|-- gradlew
|-- gradlew.bat

下载依赖项时如何实现修复超时问题?

若要修复下载依赖项时等 Read timed out 错误,Gradle 4.3+ 的用户可以通过将 添加到 -Dhttp.socketTimeout=60000 -Dhttp.connectionTimeout=60000Options更改超时。 这会将超时时间从 10 秒增加到 1 分钟。

示例

使用 Gradle 生成 Java 应用

要求

要求 说明
管道类型 YAML,经典内部版本
运行平台 Agent、DeploymentGroup
需求
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任意
可设置的变量 任意
代理版本 1.91.0 或更高版本
任务类别 构建