Optional Parameters

A flag whether the test class path of the project under test should
be included in the class path of the pre-/post-build scripts. If
set to false, the class path of script interpreter
consists only of the runtime
dependencies of the Maven Invoker Plugin. If set the
true, the project's test class path will be prepended
to the interpreter class path. Among others, this feature allows
the scripts to access utility classes from the test sources of your
project.Default value is: false.User property is: invoker.addTestClassPath.

Some files are normally excluded when copying the IT projects from
the directory specified by the parameter projectsDirectory to the
directory given by cloneProjectsTo (e.g. .svn,
CVS, *~, etc). Setting this parameter to
true will cause all files to be copied to the
cloneProjectsTo directory.Default value is: false.

Directory to which projects should be cloned prior to execution. If
not specified, each integration test will be run in the directory
in which the corresponding IT POM was found. In this case, you most
likely want to configure your SCM to ignore target and
build.log in the test's base directory.

Deprecated. As of version 1.2, the key invoker.goals from the
properties file specified by the parameter
invokerPropertiesFile should be used instead.Default value is: goals.txt.User property is: invoker.goalsFile.

The name of an optional project-specific file that contains
properties used to specify settings for an individual Maven
invocation. Any property present in the file will override the
corresponding setting from the plugin configuration. The values of
the properties are filtered and may use expressions like
${project.version} to reference project properties or
values from the parameter filterProperties. The
snippet below describes the supported properties:

# A comma or space separated list of goals/phases to execute, may
# specify an empty list to execute the default goal of the IT project
invoker.goals = clean install
# Optionally, a list of goals to run during further invocations of Maven
invoker.goals.2 = ${project.groupId}:${project.artifactId}:${project.version}:run
# A comma or space separated list of profiles to activate
invoker.profiles = its,jdk15
# The path to an alternative POM or base directory to invoke Maven on, defaults to the
# project that was originally specified in the plugin configuration
# Since plugin version 1.4
invoker.project = sub-module
# The value for the environment variable MAVEN_OPTS
invoker.mavenOpts = -Dfile.encoding=UTF-16 -Xms32m -Xmx256m
# Possible values are "fail-fast" (default), "fail-at-end" and "fail-never"
invoker.failureBehavior = fail-never
# The expected result of the build, possible values are "success" (default) and "failure"
invoker.buildResult = failure
# A boolean value controlling the aggregator mode of Maven, defaults to "false"
invoker.nonRecursive = true
# A boolean value controlling the network behavior of Maven, defaults to "false"
# Since plugin version 1.4
invoker.offline = true
# The path to the properties file from which to load system properties, defaults to the
# filename given by the plugin parameter testPropertiesFile
# Since plugin version 1.4
invoker.systemPropertiesFile = test.properties
# An optional human friendly name for this build job to be included in the build reports.
# Since plugin version 1.4
invoker.name = Test Build 01
# An optional description for this build job to be included in the build reports.
# Since plugin version 1.4
invoker.description = Checks the support for build reports.
# A comma separated list of JRE versions on which this build job should be run.
# Since plugin version 1.4
invoker.java.version = 1.4+, !1.4.1, 1.7-
# A comma separated list of OS families on which this build job should be run.
# Since plugin version 1.4
invoker.os.family = !windows, unix, mac
# A comma separated list of Maven versions on which this build should be run.
# Since plugin version 1.5
invoker.maven.version = 2.0.10+, !2.1.0, !2.2.0
# A boolean value controlling the debug logging level of Maven, , defaults to "false"
# Since plugin version 1.8
invoker.debug = true

A comma separated list of projectname patterns to run. Specify this
parameter to run individual tests by file name, overriding the
setupIncludes, pomIncludes and
pomExcludes parameters. Each pattern you specify here
will be used to create an include/exclude pattern formatted like
${projectsDirectory}/pattern. To exclude a
test, prefix the pattern with a '!'. So you can just
type -Dinvoker.test=SimpleTest,Comp*Test,!Compare* to
run builds in ${projectsDirectory}/SimpleTest and
${projectsDirectory}/ComplexTest, but not
${projectsDirectory}/CompareTestUser property is: invoker.test.

The local repository for caching artifacts. It is strongly
recommended to specify a path to an isolated repository like
${project.build.directory}/it-repo. Otherwise, your
ordinary local repository will be used, potentially soiling it with
broken artifacts.Default value is: ${settings.localRepository}.User property is: invoker.localRepositoryPath.

Exclude patterns for searching the integration test directory. This
parameter is meant to be set from the POM. By default, no POM files
are excluded. For the convenience of using an include pattern like
*, the custom settings file specified by the parameter
settingsFile will always be excluded automatically.

Include patterns for searching the integration test directory for
projects. This parameter is meant to be set from the POM. If this
parameter is not set, the plugin will search for all
pom.xml files one directory below
projectsDirectory (i.e. */pom.xml).

Starting with version 1.3, mere directories can also be matched by
these patterns. For example, the include pattern *
will run Maven builds on all immediate sub directories of
projectsDirectory, regardless if they contain a
pom.xml. This allows to perform builds that
need/should not depend on the existence of a POM.

Relative path of a cleanup/verification hook script to run after
executing the build. This script may be written with either
BeanShell or Groovy (since 1.3). If the file extension is omitted
(e.g. verify), the plugin searches for the file by
trying out the well-known extensions .bsh and
.groovy. If this script exists for a particular
project but returns any non-null value different from
true or throws an exception, the corresponding build
is flagged as a failure.Default value is: postbuild.User property is: invoker.postBuildHookScript.

Relative path of a pre-build hook script to run prior to executing
the build. This script may be written with either BeanShell or
Groovy (since 1.3). If the file extension is omitted (e.g.
prebuild), the plugin searches for the file by trying
out the well-known extensions .bsh and
.groovy. If this script exists for a particular
project but returns any non-null value different from
true or throws an exception, the corresponding build
is flagged as a failure. In this case, neither Maven nor the
post-build hook script will be invoked.Default value is: prebuild.User property is: invoker.preBuildHookScript.

Deprecated. As of version 1.2, the key invoker.profiles from the
properties file specified by the parameter
invokerPropertiesFile should be used instead.Default value is: profiles.txt.User property is: invoker.profilesFile.

Base directory where all build reports are written to. Every
execution of an integration test will produce an XML file which
contains the information about success or failure of that
particular build job. The format of the resulting XML file is
documented in the given build-job
reference.Default value is: ${project.build.directory}/invoker-reports.User property is: invoker.reportsDirectory.

Relative path of a selector script to run prior in order to decide
if the build should be executed. This script may be written with
either BeanShell or Groovy. If the file extension is omitted (e.g.
selector), the plugin searches for the file by trying
out the well-known extensions .bsh and
.groovy. If this script exists for a particular
project but returns any non-null value different from
true, the corresponding build is flagged as skipped.
In this case, none of the pre-build hook script, Maven nor the
post-build hook script will be invoked. If this script throws an
exception, the corresponding build is flagged as in error, and none
of the pre-build hook script, Maven not the post-build hook script
will be invoked.Default value is: selector.User property is: invoker.selectorScript.

Path to an alternate settings.xml to use for Maven
invocation with all ITs. Note that the
<localRepository> element of this settings file
is always ignored, i.e. the path given by the parameter
localRepositoryPath is dominant.User property is: invoker.settingsFile.

Include patterns for searching the projects directory for projects
that need to be run before the other projects. This parameter
allows to declare projects that perform setup tasks like installing
utility artifacts into the local repository. Projects matched by
these patterns are implicitly excluded from the scan for ordinary
projects. Also, the exclusions defined by the parameter
pomExcludes apply to the setup projects, too. Default
value is: setup*/pom.xml.

Flag used to suppress the summary output notifying of successes and
failures. If set to true, the only indication of the
build's success or failure will be the effect it has on the main
build (if it fails, the main build should fail as well). If
streamLogs is enabled, the sub-build summary will also
provide an indication.Default value is: false.

Parameter Details

A flag whether the test class path of the project under test should
be included in the class path of the pre-/post-build scripts. If
set to false, the class path of script interpreter
consists only of the runtime
dependencies of the Maven Invoker Plugin. If set the
true, the project's test class path will be prepended
to the interpreter class path. Among others, this feature allows
the scripts to access utility classes from the test sources of your
project.

Some files are normally excluded when copying the IT projects from
the directory specified by the parameter projectsDirectory to the
directory given by cloneProjectsTo (e.g. .svn,
CVS, *~, etc). Setting this parameter to
true will cause all files to be copied to the
cloneProjectsTo directory.

Directory to which projects should be cloned prior to execution. If
not specified, each integration test will be run in the directory
in which the corresponding IT POM was found. In this case, you most
likely want to configure your SCM to ignore target and
build.log in the test's base directory.

The name of an optional project-specific file that contains
properties used to specify settings for an individual Maven
invocation. Any property present in the file will override the
corresponding setting from the plugin configuration. The values of
the properties are filtered and may use expressions like
${project.version} to reference project properties or
values from the parameter filterProperties. The
snippet below describes the supported properties:

# A comma or space separated list of goals/phases to execute, may
# specify an empty list to execute the default goal of the IT project
invoker.goals = clean install
# Optionally, a list of goals to run during further invocations of Maven
invoker.goals.2 = ${project.groupId}:${project.artifactId}:${project.version}:run
# A comma or space separated list of profiles to activate
invoker.profiles = its,jdk15
# The path to an alternative POM or base directory to invoke Maven on, defaults to the
# project that was originally specified in the plugin configuration
# Since plugin version 1.4
invoker.project = sub-module
# The value for the environment variable MAVEN_OPTS
invoker.mavenOpts = -Dfile.encoding=UTF-16 -Xms32m -Xmx256m
# Possible values are "fail-fast" (default), "fail-at-end" and "fail-never"
invoker.failureBehavior = fail-never
# The expected result of the build, possible values are "success" (default) and "failure"
invoker.buildResult = failure
# A boolean value controlling the aggregator mode of Maven, defaults to "false"
invoker.nonRecursive = true
# A boolean value controlling the network behavior of Maven, defaults to "false"
# Since plugin version 1.4
invoker.offline = true
# The path to the properties file from which to load system properties, defaults to the
# filename given by the plugin parameter testPropertiesFile
# Since plugin version 1.4
invoker.systemPropertiesFile = test.properties
# An optional human friendly name for this build job to be included in the build reports.
# Since plugin version 1.4
invoker.name = Test Build 01
# An optional description for this build job to be included in the build reports.
# Since plugin version 1.4
invoker.description = Checks the support for build reports.
# A comma separated list of JRE versions on which this build job should be run.
# Since plugin version 1.4
invoker.java.version = 1.4+, !1.4.1, 1.7-
# A comma separated list of OS families on which this build job should be run.
# Since plugin version 1.4
invoker.os.family = !windows, unix, mac
# A comma separated list of Maven versions on which this build should be run.
# Since plugin version 1.5
invoker.maven.version = 2.0.10+, !2.1.0, !2.2.0
# A boolean value controlling the debug logging level of Maven, , defaults to "false"
# Since plugin version 1.8
invoker.debug = true

A comma separated list of projectname patterns to run. Specify this
parameter to run individual tests by file name, overriding the
setupIncludes, pomIncludes and
pomExcludes parameters. Each pattern you specify here
will be used to create an include/exclude pattern formatted like
${projectsDirectory}/pattern. To exclude a
test, prefix the pattern with a '!'. So you can just
type -Dinvoker.test=SimpleTest,Comp*Test,!Compare* to
run builds in ${projectsDirectory}/SimpleTest and
${projectsDirectory}/ComplexTest, but not
${projectsDirectory}/CompareTest

The local repository for caching artifacts. It is strongly
recommended to specify a path to an isolated repository like
${project.build.directory}/it-repo. Otherwise, your
ordinary local repository will be used, potentially soiling it with
broken artifacts.

Exclude patterns for searching the integration test directory. This
parameter is meant to be set from the POM. By default, no POM files
are excluded. For the convenience of using an include pattern like
*, the custom settings file specified by the parameter
settingsFile will always be excluded automatically.

Include patterns for searching the integration test directory for
projects. This parameter is meant to be set from the POM. If this
parameter is not set, the plugin will search for all
pom.xml files one directory below
projectsDirectory (i.e. */pom.xml).

Starting with version 1.3, mere directories can also be matched by
these patterns. For example, the include pattern *
will run Maven builds on all immediate sub directories of
projectsDirectory, regardless if they contain a
pom.xml. This allows to perform builds that
need/should not depend on the existence of a POM.

Relative path of a cleanup/verification hook script to run after
executing the build. This script may be written with either
BeanShell or Groovy (since 1.3). If the file extension is omitted
(e.g. verify), the plugin searches for the file by
trying out the well-known extensions .bsh and
.groovy. If this script exists for a particular
project but returns any non-null value different from
true or throws an exception, the corresponding build
is flagged as a failure.

Relative path of a pre-build hook script to run prior to executing
the build. This script may be written with either BeanShell or
Groovy (since 1.3). If the file extension is omitted (e.g.
prebuild), the plugin searches for the file by trying
out the well-known extensions .bsh and
.groovy. If this script exists for a particular
project but returns any non-null value different from
true or throws an exception, the corresponding build
is flagged as a failure. In this case, neither Maven nor the
post-build hook script will be invoked.

Base directory where all build reports are written to. Every
execution of an integration test will produce an XML file which
contains the information about success or failure of that
particular build job. The format of the resulting XML file is
documented in the given build-job
reference.

Relative path of a selector script to run prior in order to decide
if the build should be executed. This script may be written with
either BeanShell or Groovy. If the file extension is omitted (e.g.
selector), the plugin searches for the file by trying
out the well-known extensions .bsh and
.groovy. If this script exists for a particular
project but returns any non-null value different from
true, the corresponding build is flagged as skipped.
In this case, none of the pre-build hook script, Maven nor the
post-build hook script will be invoked. If this script throws an
exception, the corresponding build is flagged as in error, and none
of the pre-build hook script, Maven not the post-build hook script
will be invoked.

Path to an alternate settings.xml to use for Maven
invocation with all ITs. Note that the
<localRepository> element of this settings file
is always ignored, i.e. the path given by the parameter
localRepositoryPath is dominant.

Include patterns for searching the projects directory for projects
that need to be run before the other projects. This parameter
allows to declare projects that perform setup tasks like installing
utility artifacts into the local repository. Projects matched by
these patterns are implicitly excluded from the scan for ordinary
projects. Also, the exclusions defined by the parameter
pomExcludes apply to the setup projects, too. Default
value is: setup*/pom.xml.

Flag used to suppress the summary output notifying of successes and
failures. If set to true, the only indication of the
build's success or failure will be the effect it has on the main
build (if it fails, the main build should fail as well). If
streamLogs is enabled, the sub-build summary will also
provide an indication.