POM Parent: Maven failed to execute mojo

2.1k Views Asked by At

I am currently working on a Java project using Maven. Eclipse signals a problem on the <parent> section of the pom.xml file. I am not yet trying to build the project (though I reckon that Maven/eclipse kind of constantly checks for compile-time errors), but this problem renders impossible importing from the dependencies.

Here's the error I get:

Failed to execute mojo org.apache.maven.plugins:maven-enforcer-plugin:3.0.0:enforce {execution: enforce-rules} (org.apache.maven.plugins:maven-enforcer-plugin:3.0.0:enforce:enforce-rules:validate)

org.eclipse.core.runtime.CoreException: Failed to execute mojo org.apache.maven.plugins:maven-enforcer-plugin:3.0.0:enforce {execution: enforce-rules}
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeMojo(MavenExecutionContext.java:340)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.lambda$0(MavenExecutionContext.java:291)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:394)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:275)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:290)
    at org.eclipse.m2e.core.project.configurator.MojoExecutionBuildParticipant.build(MojoExecutionBuildParticipant.java:57)
    at org.eclipse.m2e.core.internal.builder.MavenBuilderImpl.lambda$1(MavenBuilderImpl.java:139)
    at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
    at org.eclipse.m2e.core.internal.builder.MavenBuilderImpl.build(MavenBuilderImpl.java:122)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:164)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:1)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.lambda$1(MavenBuilder.java:109)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:394)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:228)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.lambda$0(MavenBuilder.java:100)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:394)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:275)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:214)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.execute(MavenBuilder.java:83)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder.build(MavenBuilder.java:192)
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1020)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:247)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:303)
    at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:392)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:395)
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:506)
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:454)
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:536)
    at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:196)
    at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:289)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution enforce-rules of goal org.apache.maven.plugins:maven-enforcer-plugin:3.0.0:enforce failed: Cannot invoke "Object.getClass()" because "object" is null
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:148)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeMojo(MavenExecutionContext.java:338)
    ... 32 more
Caused by: java.lang.NullPointerException: Cannot invoke "Object.getClass()" because "object" is null
    at org.apache.maven.shared.dependency.graph.internal.Invoker.invoke(Invoker.java:39)
    at org.apache.maven.shared.dependency.graph.internal.Maven31DependencyGraphBuilder.buildDependencyGraph(Maven31DependencyGraphBuilder.java:99)
    at org.apache.maven.shared.dependency.graph.internal.DefaultDependencyGraphBuilder.buildDependencyGraph(DefaultDependencyGraphBuilder.java:91)
    at org.apache.maven.shared.dependency.graph.internal.DefaultDependencyGraphBuilder.buildDependencyGraph(DefaultDependencyGraphBuilder.java:66)
    at org.apache.maven.plugins.enforcer.BanCircularDependencies.getDependenciesToCheck(BanCircularDependencies.java:137)
    at org.apache.maven.plugins.enforcer.BanCircularDependencies.execute(BanCircularDependencies.java:83)
    at org.apache.maven.plugins.enforcer.EnforceMojo.execute(EnforceMojo.java:200)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
    ... 33 more

My pom.xml is most basic:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion> 

    <parent>  <!-- This line gets the error -->
        <groupId>org.scijava</groupId>
        <artifactId>pom-scijava</artifactId>
        <version>31.1.0</version>
        <relativePath />
    </parent>

    <repositories>
        <repository>
            <id>scijava.public</id>
            <url>https://maven.scijava.org/content/groups/public</url>
        </repository>
    </repositories>
    
    <dependencies>
        <!-- imglib2 and scifio-->
    </dependencies>
</project>

I've tried "cleaning" the project, updating eclipse, with and without forced snapshots, adding the maven War plugin to the pom.xml, closing/reopening, but none seemed to help.

EDIT: Also have to mention that I tried with this pom.xml (from the imglib2 tutorials), which uses the same dependencies as me, and still had the same error. I don't think that this error has been there all along, but it now appears on all my projects. I can't remember when it first popped up... I think it might have occurred when I created my second project (this one) using a pom.xml.

I am quite close to completely clueless as to what is happening here so any ideas are appreciated!

Thanks!

1

There are 1 best solutions below

0
Rachmanichou On

Though <parent> still displays the same error, I think I partly solved the problem by adding the dependencies that are necessary for the MyMojo.java code to run. The MyMojo.java code complained that it could not resolved the import org.apache.maven so I added these lines to the pom.xml's dependecies:

        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-plugin-api</artifactId>
            <version>3.6.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.plugin-tools</groupId>
            <artifactId>maven-plugin-annotations</artifactId>
            <version>3.6.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-project</artifactId>
            <version>2.2.1</version>
        </dependency>

The problem still persists though as it is now the MyMojoTest.java code that complains about not being able to import org.apache.maven.plugin.testing, even when the plugin testing dependency is added to the main pom.xml.