Initial Setup
Integration with Gradle is achieved with the following components:
- The Jtest Plugin for Gradle – shipped with Jtest in its local Maven repository in <
INSTALL_DIR>\integration\maven
- The
jtest.gradle
andinit.gradle
scripts shipped with Jtest in <INSTALL_DIR>
\integration\gradle
Configuring the Location of Jtest
The jtest.gradle
and init.gradle
scripts automatically detect the Jtest installation directory based on their own location. They set the detected directory as the jtest.home
property, which is later used by the Jtest Plugin for Gradle to configure the home
parameter.
If you don't use the scripts, or their location is different than the Jtest installation directory (for example, you moved the scripts or want to execute Jtest from another location), you need to configure the location of Jtest in one of the following ways:
- The
jtest.home
property. Provide the path to the Jtest installation directory in one of the following files:
-$HOME/.gradle/gradle.properties
-PROJECT_DIR/gradle.properties
- JTEST_HOME environment variable. Initscripts in Gradle 2.0 and earlier are unable to resolve Java system properties in initscript code blocks. Initscript <
INSTALL_DIR>
/integration/gradle/init.gradle
will the Jtest location only if it is set as the JTEST_HOME environment variable.
See Types of Gradle Properties for details.
Configuring Dependencies
Most dependencies required to analyze and test Maven builds with Jtest are automatically added when you configure Jtest execution in using the jtest.gradle
and init.gradle
scripts (see Configuring Jtest Execution).
In addition, to execute JUnit test and collect coverage data, you need to manually configure the JUnit Platform Launcher in your Gradle build script, for example:
testRuntimeOnly 'org.junit.platform:junit-platform-launcher:<version>'
Ensure you configure you configure the version of the launcher that corresponds to the JUnit version you are using, for example: org.junit.platform:junit-platform-launcher:1.5.2
.
Configuring Jtest Execution
Before you start working with the Jtest Plugin for Gradle, configure the Jtest license and other settings in one of the following .properties files:
<INSTALL_DIR>/jtestcli.properties
$HOME/jtestcli.properties
$HOME/.gradle/gradle.properties
[PROJECT_DIR]/gradle.properties
See Setting the License and Configuration for details.
Configuring Analysis in the Command Line
The init.gradle
script shipped with Jtest allows you to integrate with Gradle – without having to modify your Gradle build script.
Run Gradle with the jtest
task, and provide the location to the script with the -I
option to apply the plugin:
gradle jtest -I <INSTALL_DIR>/integration/gradle/init.gradle
If the jtest.home
property is not configured, the script will automatically detect the Jtest installation directory based on their own location, and set the property accordingly.
Configuring Analysis in the Build Script
You can modify your build script to integrate with Gradle by applying the jtest.gradle
script to the build script (Minimal Configuration) or configuring the Jtest task in the build script (Extended Configuration). Executing analysis with Jtest will depend on on how the build script is configured.
If your build script specifies JVM arguments, ensure they do not override other JVM arguments.
Minimal Configuration
The Jtest Plugin for Gradle can be applied in the Gradle build script (build. gradle) by adding the path to the jtest.gradle
script – directly in the root project build script:
//build script blocks apply from: System.properties['jtest.home'] + '/integration/gradle/jtest.gradle' //other build script blocks
If the jtest.home
property is not configured, the script will automatically detect the Jtest installation directory based on their own location, and set the property accordingly.
Extended Configuration
Configure the jtest.home property in the
[PROJECT_DIR]/gradle.properties
or$HOME/.gradle/gradle.properties
file . For example:# 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
As a result, you won't need to specify the path to the Jtest installation directory in your command line.
Configure the Jtest task in the
PROJECT_DIR/build.gradle
build script. For example://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
Types of Gradle Properties
Gradle supports two kinds of properties:
Java System Properties
The system properties can be configured:
- in the command line, with the
-D
parameter(-DmyProperty
) - in
gradle.properties
files, withsystemProp
(systemProp.MY_PROPERTY=MY_VALUE
)
The system properties are accessible from the Gradle build script using System.properties['myProperty']
.
Gradle Project Properties
The Gradle properties can be configured:
- in the command line, with the
-P
or -Dorg.gradle.project parameters (-PmyProperty
or-Dorg.gradle.project.myProperty
) - in
gradle.properties
files
The Gradle properties are accessible by using their names directly in the Gradle build script, or by using the property('myProperty')
function.
If your property key contains the "." character, it should be accessed via property('myProperty')
rather than directly in the build script.
See the Gradle User Manual for details (the System Properties and Gradle Properties sections).
Manual Customization of Compilation Data
If you need to modify compilation data for all projects, you can use the -Djtest.dataUpdate
command line option.
See Compilation Data Model for more information about how to customize compilation data automatically detected by the Jtest plugins.