Gradle@1 - Gradle v1 任务

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

语法

# Gradle v1
# Build using a Gradle wrapper script.
- task: Gradle@1
  inputs:
    gradleWrapperFile: 'gradlew' # string. Alias: wrapperScript. Required. Gradle Wrapper. Default: gradlew.
    #options: # string. Options. 
    tasks: 'build' # string. Required. Tasks. Default: build.
  # Advanced
    #workingDirectory: # string. Alias: cwd. Working Directory. 
    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.
    #gradleOptions: '-Xmx1024m' # string. Alias: gradleOpts. Set GRADLE_OPTS. Default: -Xmx1024m.
  # JUnit Test Results
    #publishJUnitResults: true # boolean. Publish to TFS/Team Services. Default: true.
    testResultsFiles: '**/build/test-results/TEST-*.xml' # string. Required when publishJUnitResults = true. Test Results Files. Default: **/build/test-results/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 = false. 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.
  # 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. Required when sqAnalysisEnabled = true. SonarQube Project Name. 
    #sonarQubeProjectKey: # string. Alias: sqProjectKey. Required when sqAnalysisEnabled = true. SonarQube Project Key. 
    #sonarQubeProjectVersion: # string. Alias: sqProjectVersion. Required when sqAnalysisEnabled = true. SonarQube Project Version. 
    #sonarQubeGradlePluginVersion: '2.0.1' # string. Alias: sqGradlePluginVersion. Required when sqAnalysisEnabled = true. SonarQube Gradle Plugin Version. Default: 2.0.1.
    #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.
    #findBugsRunAnalysis: false # boolean. Alias: findbugsAnalysisEnabled. Run FindBugs. Default: false.
    #pmdRunAnalysis: false # boolean. Alias: pmdAnalysisEnabled. Run PMD. Default: false.

输入

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

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


options - 选项
string

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


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

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

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


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

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


publishJUnitResults - 发布到 TFS/Team Services
boolean。 默认值:true

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


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

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


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

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


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

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


codeCoverageClassFilesDirectories - 类文件目录
输入别名:classFilesDirectoriesstringcodeCoverageTool = false时是必需的。 默认值: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

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


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

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


jdkVersionOption - JDK 版本
输入别名:jdkVersionstring。 可选。 当 javaHomeSelection = JDKVersion时使用。 允许的值:default1.9(JDK 9)、1.8(JDK 8)、1.7(JDK 7)、1.6(JDK 6)。 默认值:default

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


jdkDirectory - JDK 路径
输入别名:jdkUserInputPathstringjavaHomeSelection = Path时是必需的。

将JAVA_HOME设置为给定路径。


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

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


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

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


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

执行当前目标后运行 SonarQube 分析。 应首先执行 installpackage 目标。


sonarQubeServiceEndpoint - SonarQube Endpoint
输入别名:sqConnectedServiceNamestringsqAnalysisEnabled = true时是必需的。

指定要使用的 SonarQube 服务器的终结点。


sonarQubeProjectName - SonarQube 项目名称
输入别名:sqProjectNamestringsqAnalysisEnabled = true时是必需的。

SonarQube 项目名称,即 sonar.projectName


sonarQubeProjectKey - SonarQube 项目密钥
输入别名:sqProjectKeystringsqAnalysisEnabled = true时是必需的。

SonarQube 项目的唯一键,即 sonar.projectKey


sonarQubeProjectVersion - SonarQube 项目版本
输入别名:sqProjectVersionstringsqAnalysisEnabled = true时是必需的。

SonarQube 项目版本,即 sonar.projectVersion


sonarQubeGradlePluginVersion - SonarQube Gradle 插件版本
输入别名:sqGradlePluginVersionstringsqAnalysisEnabled = true时是必需的。 默认值:2.0.1

包含 SpotBugs Gradle 插件的版本号。


sonarQubeSpecifyDB - SonarQube 服务器版本低于 5.2
输入别名:sqDbDetailsRequiredboolean。 可选。 当 sqAnalysisEnabled = true时使用。 默认值:false

SonarQube 服务器 5.1 和更低版本。 指定数据库连接详细信息。


sonarQubeDBUrl - Db 连接字符串
输入别名:sqDbUrlstring。 可选。 当 sqDbDetailsRequired = true时使用。

仅 SonarQube 服务器版本 5.1 和更低版本。 输入 sonar.jdbc.url的数据库连接设置。 例如: jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor


sonarQubeDBUsername - Db 用户名
输入别名:sqDbUsernamestring。 可选。 当 sqDbDetailsRequired = true时使用。

SonarQube 服务器 5.1 和更低版本。 输入 sonar.jdbc.username的数据库用户的用户名。


sonarQubeDBPassword - Db 用户密码
输入别名:sqDbPasswordstring。 可选。 当 sqDbDetailsRequired = true时使用。

SonarQube 服务器 5.1 和更低版本。 输入数据库用户的密码,即 sonar.jdbc.password


sonarQubeIncludeFullReport - 生成摘要(SQ 5.3+) 中包含完整分析报告
输入别名:sqAnalysisIncludeFullReportboolean。 可选。 当 sqAnalysisEnabled = true时使用。 默认值:true

延迟生成,直到 SonarQube 分析完成。


sonarQubeFailWhenQualityGateFails - 质量门故障(SQ 5.3+)
输入别名:sqAnalysisBreakBuildIfQualityGateFailedboolean。 可选。 当 sqAnalysisEnabled = true时使用。

仅 SonarQube 服务器版本 5.3 或更高版本。 引入延迟,因为生成必须等待 SonarQube 完成分析。 详细了解如何使用 SonarQube 进行生成


checkStyleRunAnalysis - 运行 Checkstyle
输入别名:checkstyleAnalysisEnabledboolean。 默认值:false

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


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

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


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

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


任务控制选项

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

输出变量

没有。

注解

注释

Gradle@3中提供了此任务的较新版本。

注释

Gradle@2提供了此任务的较新版本。

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

要求

要求 说明
管道类型 YAML,经典生成
运行时间 代理,DeploymentGroup
需求 自承载代理必须具有与以下 要求 运行使用此任务的作业 功能:
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任何
Settable 变量 任何
代理版本 1.91.0 或更高版本
任务类别 建造