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 要执行的任务 () 。 任务名称列表应用空格分隔,并且可以从 gradlew tasks 命令提示符发出。

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


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

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


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

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


testResultsFiles - 测试结果文件
string. 当 publishJUnitResults = true 时,需要此选项。 默认值:**/build/test-results/TEST-*.xml

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


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

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


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

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


codeCoverageClassFilesDirectories - 类文件目录
输入别名: classFilesDirectoriesstring. 当 codeCoverageTool = 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 路径
输入别名: 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 分析
输入别名: sqAnalysisEnabledboolean. 默认值:false

执行当前目标后运行 SonarQube 分析。 install 应首先执行 或 package 目标。


sonarQubeServiceEndpoint - SonarQube 终结点
输入别名: sqConnectedServiceNamestring. 当 sqAnalysisEnabled = true 时,需要此选项。

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


sonarQubeProjectName - SonarQube 项目名称
输入别名: sqProjectNamestring. 当 sqAnalysisEnabled = true 时,需要此选项。

SonarQube 项目名称,即 sonar.projectName


sonarQubeProjectKey - SonarQube 项目密钥
输入别名: sqProjectKeystring. 当 sqAnalysisEnabled = true 时,需要此选项。

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


sonarQubeProjectVersion - SonarQube 项目版本
输入别名: sqProjectVersionstring. 当 sqAnalysisEnabled = true 时,需要此选项。

SonarQube 项目版本,即 sonar.projectVersion


sonarQubeGradlePluginVersion - SonarQube Gradle 插件版本
输入别名: sqGradlePluginVersionstring. 当 sqAnalysisEnabled = true 时,需要此选项。 默认值:2.0.1

包含 SpotBugs Gradle 插件的版本号。


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

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


sonarQubeDBUrl - 数据库连接字符串
输入别名: sqDbUrlstring. 可选。 在 时 sqDbDetailsRequired = true使用 。

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


sonarQubeDBUsername - 数据库用户名
输入别名: sqDbUsernamestring. 可选。 在 时 sqDbDetailsRequired = true使用 。

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


sonarQubeDBPassword - 数据库用户密码
输入别名: 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/wrapper/gradle-wrapper.jar) 的 gradle 包装器 (生成的二进制项目。 此二进制文件很小,不需要更新。 如果需要更改生成代理上运行的 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 分钟。

要求

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