Embracing the Messiness in Search of Epic Solutions

Maven: Plugin Execution Not Covered by Lifecycle Configuration

Posted

in

PROBLEM

When running a Maven project in Eclipse or Spring Tool Suite (STS), we get an exception that is similar to this:-

Plugin execution not covered by lifecycle configuration:
org.jacoco:jacoco-maven-plugin:0.6.4.201312101107:prepare-agent (execution: pre-unit-test, phase: initialize)

SOLUTION

This problem stems from m2eclipse (m2e) plugin, which provides Maven support in Eclipse-based IDEs.

STEP 1: Suppress the Error Message

The simplest solution is to instruct m2e to silently ignore the plugin execution by adding the following configuration in the project root pom.xml:-

IMPORTANT: Please make sure to enter the correct plugin’s groupId, artifactId, versionRange and goals that causes the problem in the first place.

<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.eclipse.m2e</groupId>
            <artifactId>lifecycle-mapping</artifactId>
            <version>1.0.0</version>
            <configuration>
                <lifecycleMappingMetadata>
                    <pluginExecutions>
                        <pluginExecution>
                            <pluginExecutionFilter>
                                <groupId>org.jacoco</groupId>
                                <artifactId>jacoco-maven-plugin</artifactId>
                                <versionRange>[0.0.1,)</versionRange>
                                <goals>
                                    <goal>prepare-agent</goal>
                                </goals>
                            </pluginExecutionFilter>
                            <action>
                                <ignore />
                            </action>
                        </pluginExecution>
                    </pluginExecutions>
                </lifecycleMappingMetadata>
            </configuration>
        </plugin>
    </plugins>
</pluginManagement>

STEP 2: Learn More About This Problem

Eclipse provides a great documentation regarding this issue. You can learn the “what”, “why” and “how” at http://wiki.eclipse.org/M2E_plugin_execution_not_covered

STEP 3: A More Elegant Fix

The problem with the above fix is we clutter our pristine Maven project configuration with an IDE plugin specific configuration that has nothing to do with the project in the first place.

So, the best solution is ditch Eclipse-based IDEs and switch to IntelliJ IDEA… because you either have idea, or don’t.

Tags:

Comments

Leave a Reply