Trouble configuring JaCoCo in maven
Solution 1
This is because you launch maven with the explicit goal:
mvn ... jacoco:check
Running like this, the <configuration>
section inside <execution>
is not read; to make it work, use the default maven phase to which the jacoco:check
goal is bound, which is verify
mvn clean verify
Or, alternatively, (but I cannot try this myself right now and I am not 100% sure), try using a default-
prefix in the executions ids, like:
<execution>
<id>default-jacoco-check</id>
<goals>
<goal>check</goal>
</goals>
[...]
</execution>
Solution 2
I had the same issue. To resolve it I added the phase tag into the coverage-check execution:
<id>coverage-check</id>
<phase>test</phase>
<goals>
<goal>check</goal>
</goals>
And now the coverage-check executes every time I run "mvn clean package" command.
Related videos on Youtube
Dubius
Updated on August 24, 2020Comments
-
Dubius over 3 years
I am trying to do a simple JaCoCo report through Maven and I keep getting the same error. Here is a snippet of my plugin.
<plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.7.2.201409121644</version> <executions> <execution> <id>jacoco-check</id> <goals> <goal>check</goal> </goals> <configuration> <rules> <rule> <element>PACKAGE</element> <limits> <limit> <counter>LINE</counter> <value>COVEREDRATIO</value> <minimum>0.01</minimum> </limit> </limits> </rule> </rules> </configuration> </execution> </executions> </plugin>
When I run
mvn clean install jacoco:check
I get the followingFailed to execute goal org.jacoco:jacoco-maven-plugin:0.7.2.201409121644:check (default-cli) on project ###########: The parameters 'rules' for goal org.jacoco:jacoco-maven-plugin:0.7.2.201409121644:check are missing or invalid -> [Help 1]
I've tried changing the version from 0.6.3 to 0.7.2 and every version in between. As far as I can tell this looks like valid config for any of those versions above 0.6.3 and was even originally taken from their own examples found at the below link (I just removed everything but the check goal):
http://www.eclemma.org/jacoco/trunk/doc/maven.html
If I run with the
-X
option I get the following stack trace:org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.jacoco:jacoco-maven-plugin:0.7.2.201409121644:check (default-cli) on project science-open: The parameters 'rules' for goal org.jacoco:jacoco-maven-plugin:0.7.2.201409121644:check are missing or invalid at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:220) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213) at org.apache.maven.cli.MavenCli.main(MavenCli.java:157) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) at org.codehaus.classworlds.Launcher.main(Launcher.java:46) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134) Caused by: org.apache.maven.plugin.PluginParameterException: The parameters 'rules' for goal org.jacoco:jacoco-maven-plugin:0.7.2.201409121644:check are missing or invalid at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:584) at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:537) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:120) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) ... 25 more
What am i doing wrong?