使用此任务使用 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
。
tasks
-
任务
string
。 必填。 默认值:build
。
要执行的 Gradle 的任务(s)。 任务名称列表应用空格分隔,可以从命令提示符发出的 gradlew tasks
获取。
有关详细信息,请参阅 Gradle 生成脚本基础知识。
publishJUnitResults
-
发布到 Azure Pipelines
boolean
。 默认值:true
。
将 Gradle 生成生成的 JUnit 测试结果发布到 Azure Pipelines。 该任务将每个测试结果文件作为 Azure Pipelines 中的测试运行发布 Test Results Files
。
testResultsFiles
-
测试结果文件
string
。
publishJUnitResults = true
时是必需的。 默认值:**/TEST-*.xml
。
测试结果的文件路径。 可以使用 通配符。 例如,**/TEST-*.xml
名称以 TEST-
开头的所有 XML 文件。
testRunTitle
-
测试运行游戏
string
。 可选。 当 publishJUnitResults = true
时使用。
提供此版本的 JUnit 测试结果的名称。
codeCoverageToolOption
-
代码覆盖率工具
输入别名: codeCoverageTool
.
string
。 允许的值:None
、Cobertura
、JaCoCo
。 默认值:None
。
指定代码覆盖率工具,用于确定生成测试用例所涵盖的代码。
codeCoverageClassFilesDirectories
-
类文件目录
输入别名: classFilesDirectories
.
string
。
codeCoverageTool != 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
时使用。 允许的值:default
、1.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
时使用。 允许的值:default
、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
.
string
。
javaHomeSelection = Path
时是必需的。
将JAVA_HOME设置为给定路径。
jdkArchitectureOption
-
JDK 体系结构
输入别名: jdkArchitecture
.
string
。 可选。 当 jdkVersion != default
时使用。 允许的值:x86
、x64
。 默认值:x64
。
提供 JDK 体系结构(x86 或 x64)。
gradleOptions
-
设置GRADLE_OPTS
输入别名: gradleOpts
.
string
。 默认值:-Xmx1024m
。
设置GRADLE_OPTS环境变量,该变量用于发送命令行参数以启动 JVM。
xmx
标志指定 JVM 可用的最大内存。
sonarQubeRunAnalysis
-
运行 SonarQube 或 SonarCloud 分析
输入别名: sqAnalysisEnabled
.
boolean
。 默认值:false
。
此选项已从 Gradle 任务版本 1 更改为使用 SonarQube 和 SonarCloud 市场扩展。 启用此选项可在 任务 字段中执行任务后运行 SonarQube 或 SonarCloud 分析。 还必须在此 Gradle 任务之前,将 准备分析配置 任务从其中一个扩展添加到生成管道。
适用于 Gradle 版本的 sqGradlePluginVersionChoice
- SonarQube 扫描程序
string
。
sqAnalysisEnabled = true
时是必需的。 允许的值:specify
(指定版本号),build
(使用在 build.gradle 中应用的插件)。 默认值:specify
。
指定要使用的 SonarQube Gradle 插件版本。 在 Gradle 配置文件中声明版本,或使用此字符串指定版本。
适用于 Gradle 插件版本的 sonarQubeGradlePluginVersion
- SonarQube 扫描程序
输入别名: sqGradlePluginVersion
.
string
。
sqAnalysisEnabled = 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 插件版本
string
。
spotBugsAnalysisEnabled = true
时是必需的。 允许的值:specify
(指定版本号),build
(使用在 build.gradle 中应用的插件)。 默认值:specify
。
指定要使用的 SpotBugs Gradle 插件版本。 可以在 Gradle 配置文件中声明版本,也可以在此字符串中指定版本。
spotbugsGradlePluginVersion
-
版本号
string
。
spotBugsAnalysisEnabled = true && spotBugsGradlePluginVersionChoice = specify
时是必需的。 默认值:4.7.0
。
包含 SpotBugs Gradle 插件的版本号。
任务控制选项
除任务输入之外,所有任务都具有控制选项。 有关详细信息,请参阅 控件选项和常见任务属性。
输出变量
没有。
注解
SonarQube 分析的配置已移动到任务 中的 SonarQube 或 Prepare Analysis Configuration
扩展。
使用此任务使用 Gradle 包装器脚本进行生成。
如何从 Gradle 项目生成包装器?
Gradle 包装器允许生成代理下载和配置签入存储库的确切 Gradle 环境,而无需在 JVM 以外的生成代理本身上配置任何软件。
通过从 build.gradle 所在的根项目目录发出以下命令来创建 Gradle 包装器:
jamal@fabrikam> gradle wrapper
将 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 应用