clover:instrumentInternal

Instrument source roots.

Note: Do not call this MOJO directly. It is meant to be called in a custom forked lifecycle by the other Clover plugin MOJOs.

Mojo Attributes:

  • Requires a Maven 2.0 project to execute.
  • Requires dependency resolution of artifacts in scope: test
  • Automatically executes within the lifecycle phase: generate-sources

Required Parameters

Name Type Description
cloverDatabase String The location of the Clover database.
cloverMergeDatabase String The location of the merged clover database to create when running a report in a multimodule build.
cloverOutputDirectory String The directory where the Clover plugin will put all the files it generates during the build process. For example the Clover plugin will put instrumented sources somewhere inside this directory.
localRepository ArtifactRepository Local maven repository.
pluginArtifacts List List of all artifacts for this Clover plugin provided by Maven. This is used internally to get a handle on the Clover JAR artifact. Note: This is passed by Maven and must not be configured by the user.
project MavenProject The Maven project instance for the executing project. Note: This is passed by Maven and must not be configured by the user.

Optional Parameters

Name Type Description
artifactResolver ArtifactResolver Artifact resolver used to find clovered artifacts (artifacts with a clover classifier).
excludes Set The list of file to exclude from the instrumentation.
flushInterval int When the Clover Flush Policy is set to "interval" or threaded this value is the minimum period between flush operations (in milliseconds). Default value is 500.
flushPolicy String The Clover flush policy to use. Valid values are directed, interval and threaded. Default value is threaded.
includes Set The list of file to include in the instrumentation.
includesAllSourceRoots boolean Whether the Clover plugin should instrument all source roots (ie even generated sources) or whether it should only instrument the main source root. Default value is false.
jdk String Whether the Clover instrumentation should use the Clover jdk14 or jdk15 flags to parse sources.
licenseFile String A Clover license file to be used by the plugin. If not specified, the Clover plugin uses a default evaluation license.
licenseLocation String A Clover license file to be used by the plugin. The plugin tries to resolve this parameter first as a resource, then as a URL, and then as a file location on the filesystem.
waitForFlush boolean If true we'll wait 2*flushInterval to ensure coverage data is flushed to the Clover database before running any query on it.

Note: The only use case where you would want to turn this off is if you're running your tests in a separate JVM. In that case the coverage data will be flushed by default upon the JVM shutdown and there would be no need to wait for the data to be flushed. As we can't control whether users want to fork their tests or not, we're offering this parameter to them.

Default value is true.

Parameter Details

artifactResolver

Artifact resolver used to find clovered artifacts (artifacts with a clover classifier).

  • Type: org.apache.maven.artifact.resolver.ArtifactResolver
  • Required: No

cloverDatabase The location of the Clover database.
  • Type: java.lang.String
  • Required: Yes
  • Expression: ${project.build.directory}/clover/clover.db

cloverMergeDatabase The location of the merged clover database to create when running a report in a multimodule build.
  • Type: java.lang.String
  • Required: Yes
  • Expression: ${project.build.directory}/clover/cloverMerge.db

cloverOutputDirectory The directory where the Clover plugin will put all the files it generates during the build process. For example the Clover plugin will put instrumented sources somewhere inside this directory.
  • Type: java.lang.String
  • Required: Yes

excludes The list of file to exclude from the instrumentation.
  • Type: java.util.Set
  • Required: No

flushInterval When the Clover Flush Policy is set to "interval" or threaded this value is the minimum period between flush operations (in milliseconds).
  • Type: int
  • Required: No
  • Default: 500

flushPolicy The Clover flush policy to use. Valid values are directed, interval and threaded.
  • Type: java.lang.String
  • Required: No
  • Default: threaded

includes The list of file to include in the instrumentation.
  • Type: java.util.Set
  • Required: No

includesAllSourceRoots Whether the Clover plugin should instrument all source roots (ie even generated sources) or whether it should only instrument the main source root.
  • Type: boolean
  • Required: No
  • Default: false

jdk Whether the Clover instrumentation should use the Clover jdk14 or jdk15 flags to parse sources.
  • Type: java.lang.String
  • Required: No

licenseFile A Clover license file to be used by the plugin. If not specified, the Clover plugin uses a default evaluation license.
  • Type: java.lang.String
  • Required: No

licenseLocation A Clover license file to be used by the plugin. The plugin tries to resolve this parameter first as a resource, then as a URL, and then as a file location on the filesystem.
  • Type: java.lang.String
  • Required: No

localRepository Local maven repository.
  • Type: org.apache.maven.artifact.repository.ArtifactRepository
  • Required: Yes
  • Expression: ${localRepository}

pluginArtifacts List of all artifacts for this Clover plugin provided by Maven. This is used internally to get a handle on the Clover JAR artifact. Note: This is passed by Maven and must not be configured by the user.
  • Type: java.util.List
  • Required: Yes
  • Expression: ${plugin.artifacts}

project The Maven project instance for the executing project. Note: This is passed by Maven and must not be configured by the user.
  • Type: org.apache.maven.project.MavenProject
  • Required: Yes
  • Expression: ${project}

waitForFlush If true we'll wait 2*flushInterval to ensure coverage data is flushed to the Clover database before running any query on it. Note: The only use case where you would want to turn this off is if you're running your tests in a separate JVM. In that case the coverage data will be flushed by default upon the JVM shutdown and there would be no need to wait for the data to be flushed. As we can't control whether users want to fork their tests or not, we're offering this parameter to them.
  • Type: boolean
  • Required: No
  • Default: true