Gradle@4 - Gradle v4 任务

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

重要

Gradle 开始,Gradle@4 任务移除了内置代码覆盖率选项。 有关详细信息,请参阅 备注

语法

# Gradle v4
# Build using a Gradle wrapper script.
- task: Gradle@4
  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. 
  # Advanced
    javaHomeOption: 'JDKVersion' # 'JDKVersion' | 'Path'. Alias: javaHomeSelection. Required. Set JAVA_HOME by. Default: JDKVersion.
    #jdkVersionOption: 'default' # 'default' | '1.17' | '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 包装器
输入别名wrapperScript. string。 必填。 默认值:gradlew

指定将用于生成的存储库中的 gradlew 包装器的位置。 Windows 上的代理(包括Microsoft托管代理)必须使用 gradlew.bat 包装器。 Linux 或 macOS 上的代理可以使用 gradlew shell 脚本。 详细了解 Gradle 包装器。 如果 Gradle 包装器不在根目录中,请指定包装器脚本的路径。 例如,subdir/gradlew


workingDirectory - 工作目录
输入别名cwd. string

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


options - 选项
string

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


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

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

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


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

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


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

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


testRunTitle - 测试运行游戏
string。 可选。 当 publishJUnitResults = true时使用。

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


javaHomeOption - 设置JAVA_HOME
输入别名javaHomeSelection. string。 必填。 允许的值:JDKVersion(JDK 版本),Path。 默认值:JDKVersion

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


jdkVersionOption - JDK 版本
输入别名jdkVersion. string。 可选。 当 javaHomeSelection = JDKVersion时使用。 允许的值:default1.17(JDK 17)、1.11(JDK 11)、1.10(不受支持)、1.9(JDK 9(不支持))、1.8(JDK 8)、1.7(JDK 7)、1.6(JDK 6(不支持))。 默认值:default

尝试发现所选 JDK 版本的路径,并相应地设置JAVA_HOME。


jdkDirectory - JDK 路径
输入别名jdkUserInputPath. stringjavaHomeSelection = Path时是必需的。

将JAVA_HOME设置为给定路径。


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

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


gradleOptions - 设置GRADLE_OPTS
输入别名gradleOpts. string。 默认值:-Xmx1024m

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


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

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


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

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


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

包含 SonarQube Gradle 插件的版本号。


checkStyleRunAnalysis - 运行 Checkstyle
输入别名checkstyleAnalysisEnabled. boolean。 默认值:false

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


findBugsRunAnalysis - 运行 FindBugs
输入别名findbugsAnalysisEnabled. boolean。 默认值:false

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


pmdRunAnalysis - 运行 PMD
输入别名pmdAnalysisEnabled. boolean。 默认值:false

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


spotBugsAnalysis - 运行 SpotBugs
输入别名spotBugsAnalysisEnabled. boolean。 默认值:false

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


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

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


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

包含 SpotBugs Gradle 插件的版本号。


任务控制选项

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

输出变量

没有。

注解

Gradle 开始,Gradle@4 任务移除了内置代码覆盖率选项。 要在管道中将代码覆盖率用于 Gradle,请执行以下操作:

  1. 在文件中 build.gradle 指定代码覆盖率插件。 有关详细信息,请参阅 Gradle 代码分析选项
  2. 任务之后,在管道中使用GRadle@2任务。

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

使用此任务使用 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=60000 添加到 Options来更改超时。 这会将超时时间从 10 秒增加到 1 分钟。

例子

使用 Gradle 生成 Java 应用

要求

要求 DESCRIPTION
管道类型 YAML,经典生成
运行时间 代理,DeploymentGroup
需求 没有
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任意
Settable 变量 任意
代理版本 1.91.0 或更高版本
任务类别 建造