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.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.
# 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 包装器
输入别名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 测试结果的名称。


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

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


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

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


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

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


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

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


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

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


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。


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


任务控制选项

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

输出变量

没有。

注解

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 或更高版本
任务类别 建造