Maven Invoker Plugin 1.8, more than just another minor release


The latest version of the Maven Invoker Plugin has just been released on it deservers some extra attention.

The Invoker Plugin is used to run a set of Maven projects. The plugin can determine whether each project execution is successful, and optionally can verify the output generated from a given project execution.
This plugin is in particular handy to perform integration tests for other Maven plugins. The Invoker Plugin can be employed to run a set of test projects that have been designed to assert certain features of the plugin under test.

Set debug logging on project-level

With the previous versions of the invoker plugin it was possible to change the logging level to debug, but that would apply on every invoked project. Now you activate debug logging per project by adding the following line to your invoker.properties:
invoker.debug=true

Debug invoked projects

Up until now the mvn executable was always called when invoking a project. This made it very hard to debug the invoked projects. Now it is possible to change the name of the executable, so you can use mvnDebug to debug.
Either add your preferred Maven command to the arguments like -Dinvoker.mavenExecutable=mvnDebug or add it to the configuration of the maven-invoker-plugin:

<configuration>
  <mavenExecutable>mvnDebug</mavenExecutable>
</configuration>

Selectors for Maven and JRE work for forked instances as well

For both Maven and Java you can specify if a project should be invoked based on their versions.
The invoker.properties could look like this:

# A comma separated list of JRE versions on which this build job should be run.
invoker.java.version = 1.4+, !1.4.1, 1.7-

# A comma separated list of Maven versions on which this build should be run.
invoker.maven.version = 2.0.10+, !2.1.0, !2.2.0

These values were always calculated based on the running Maven and Java versions, and not on the forked versions (i.e. when you specify a different mavenHome and javaHome for the invoker plugin).
But now the plugin can also handle these forks, so projects will only be invoked if their target Maven version and Java version match.
This feature required the change of the Maven prerequisite, so you will need at least Maven 2.2.1 to run the invoker plugin. But invoked projects can use a lower version of Maven by just pointing the mavenHome to the preferred version.

Exclude tests

In some circumstances there can be tests which fail on your system. If somebody else is trying to fix this, then it shouldn’t block your development. In such cases you want to disable these known failing tests from commandline. With this release you can do the following:
-Dinvoker.test=!testX
This way it is possible to exclude specific tests.

Report skipped invoked projects

Both the logging and reporting have been improved by mentioning why an invoked project was skipped. The report now follows the layout of the surefire-reports much better.

Project information

To use this plugin, add the following to the build section of your pom.xml

<plugin>
  <group>org.apache.maven.plugins</group>
  <artifactId>maven-invoker-plugin</artifactId>
  <version>1.8</version>
</plugin>

Maven Invoker Plugin Site: http://maven.apache.org/plugins/maven-invoker-plugin
Release notes: http://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=11441&styleName=Html&version=18730

Advertenties

Geef een reactie

Vul je gegevens in of klik op een icoon om in te loggen.

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit / Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit / Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit / Bijwerken )

Google+ photo

Je reageert onder je Google+ account. Log uit / Bijwerken )

Verbinden met %s


%d bloggers liken dit: