初始设置
与 Gradle 的集成通过以下组件实现:
- Gradle 的 Jtest 插件 - 在 <
INSTALL_DIR>\integration\maven
的本地 Maven 资源库中随 Jtest 一起提供 jtest.gradle
和init.gradle
脚本在 Jtest <INSTALL_DIR>
\integration\gradle
中提供
配置 Jtest 的位置
jtest.gradle
和 init.gradle
脚本根据其位置自动检测 Jtest 安装目录。它们会将检测到的目录设置为 jtest.home
属性,Gradle 的 Jtest 插件之后会使用该属性来配置 home
参数。
如果您不使用这些脚本或者脚本的位置与 Jtest 安装目录不同(例如,您移动了脚本是想要从其他位置执行 Jtest),则需要通过以下方式之一配置 Jtest 的位置:
jtest.home
属性。在以下文件之一提供 Jtest 安装目录的路径:
-$HOME/.gradle/gradle.properties
-PROJECT_DIR/gradle.properties
- JTEST_HOME 环境变量。Gradle 2.0 及更早版本中的初始化脚本无法解析 initscript 代码块中的 Java 系统属性。初始化脚本 <
INSTALL_DIR>
/integration/gradle/init.gradle
只有在将 Jtest 位置设置为 JTEST_HOME 环境变量时才能识别该位置。
详细信息,请参阅 Gradle 属性的类型。
配置依赖项
使用 jtest.gradle
和 init.gradle
脚本配置 Jtest 执行时,会自动添加大部分分析和测试 Maven 构建所需的依赖项(请参阅配置 Jtest 执行)。
此外,要执行 JUnit 测试并收集覆盖率数据,您需要在 Gradle 构建脚本中手动配置 JUnit 平台启动器,例如:
testRuntimeOnly 'org.junit.platform:junit-platform-launcher:<version>'
确保您配置的启动器版本与您使用的 JUnit 版本对应,例如:org.junit.platform:junit-platform-launcher:1.5.2
。
配置 Jtest 执行
在开始使用 Gradle 的 Jtest 插件之前,需在以下 .properties 文件之一配置 Jtest 许可证及其他设置:
<INSTALL_DIR>/jtestcli.properties
$HOME/jtestcli.properties
$HOME/.gradle/gradle.properties
[PROJECT_DIR]/gradle.properties
在命令行中配置分析
Jtest 提供的 init.gradle
脚本用于与 Gradle 集成,无需修改您的 Gradle 构建脚本。
使用 jtest
任务运行 Gradle,并使用 -I
选项提供脚本位置以应用插件:
gradle jtest -I <INSTALL_DIR>/integration/gradle/init.gradle
如果未配置 jtest.home
属性,脚本将根据其位置自动检测 Jtest 安装目录,并相应设置该属性。
在构建脚本中配置分析
您可以通过将 jtest.gradle
脚本应用到构建脚本(最小化配置)或在构建脚本中配置 Jtest 任务(扩展配置)来修改您的构建脚本,从而与 Gradle 集成。使用 Jtest 执行分析依赖于构建脚本的配置方式。
如果您的构建脚本指定了 JVM 参数,则应确保它们不会覆盖其他 JVM 参数。
最小化配置
Gradle 的 Jtest 插件可以应用于 Gradle 构建脚本(build. gradle),方法是将路径添加到 jtest.gradle
脚本 - 直接在根项目构建脚本中:
//build script blocks apply from: System.properties['jtest.home'] + '/integration/gradle/jtest.gradle' //other build script blocks
如果未配置 jtest.home
属性,脚本将根据其位置自动检测 Jtest 安装目录,并相应设置该属性。
扩展配置
在
[PROJECT_DIR]/gradle.properties
或$HOME/.gradle/gradle.properties
文件中配置 jtest.home 属性。例如:# Java system property 'jtest.home systemProp.jtest.home=PATH/TO/JTEST # project property 'jtest.settings' (could be Java system property as well) jtest.settings=PATH/TO/SETTINGS/FILE
这样,您就不需要在命令行中指定 Jtest 安装目录的路径。
在
PROJECT_DIR/build.gradle
构建脚本中配置 Jtest 任务。例如://build script blocks apply from: System.properties['jtest.home'] + '/integration/gradle/jtest.gradle' jtest { config = "builtin://Recommended Rules" showSettings = true resources = [ "**/*.java", "my_project_name/src/**/*.xml" ] compilation { id = "main" //default value override = false //default value encoding = "MacRoman" } } // other build script blocks
Gradle 属性的类型
Gradle 支持两种属性:
Java 系统属性
可以通过以下方式配置该系统属性:
- 在命令行中,使用
-D
参数(-DmyProperty
) - 在
gradle.properties
文件中,使用systemProp
(systemProp.MY_PROPERTY=MY_VALUE
)
在 Gradle 构建脚本中可以通过 System.properties['myProperty']
访问这些系统属性。
Gradle 项目属性
可以通过以下方式配置该 Gradle 属性:
- 在命令行中,使用
-P
或 -Dorg.gradle.project 参数(-PmyProperty
或-Dorg.gradle.project.myProperty
) - 在
gradle.properties
文件中
这些 Gradle 属性可以通过其名称直接在 Gradle 构建脚本中访问,或通过 property('myProperty')
函数访问。
如果您的属性键包含“.”字符,则应通过
property('myProperty')
访问,而不是直接在构建脚本中访问。
详细信息,请参阅 Gradle 用户手册(System Properties 和 Gradle Properties 部分)。
手动自定义编译数据
如需修改所有项目的编译数据,可以使用 -Djtest.dataUpdate
命令行选项。
有关 Jtest 插件自动检测编译数据自定义设置的更多信息,请参阅编译数据模型。