quarkusio/quarkus · error · MojoExecutionException

Failed to load <pomPropsPath> from the classpath

Error message

Failed to load <pomPropsPath> from the classpath

What it means

After locating the quarkus-bootstrap-maven-resolver pom.properties resource, DevMojo loads it as a Properties object; an IOException while reading the stream is wrapped in this MojoExecutionException. It means the resource was found but could not be read from the jar/stream.

Source

Thrown at devtools/maven/src/main/java/io/quarkus/maven/DevMojo.java:1713

                coreDeployment = d;
                break;
            }
        }
        if (coreDeployment == null) {
            throw new MojoExecutionException(
                    "Failed to locate io.quarkus:quarkus-core-deployment on the application build classpath");
        }

        final String pomPropsPath = "META-INF/maven/io.quarkus/quarkus-bootstrap-maven-resolver/pom.properties";
        final InputStream devModePomPropsIs = DevModeMain.class.getClassLoader().getResourceAsStream(pomPropsPath);
        if (devModePomPropsIs == null) {
            throw new MojoExecutionException("Failed to locate " + pomPropsPath + " on the classpath");
        }
        final Properties devModeProps = new Properties();
        try (InputStream is = devModePomPropsIs) {
            devModeProps.load(is);
        } catch (IOException e) {
            throw new MojoExecutionException("Failed to load " + pomPropsPath + " from the classpath", e);
        }
        final String devModeGroupId = devModeProps.getProperty("groupId");
        if (devModeGroupId == null) {
            throw new MojoExecutionException("Classpath resource " + pomPropsPath + " is missing groupId");
        }
        final String devModeArtifactId = devModeProps.getProperty("artifactId");
        if (devModeArtifactId == null) {
            throw new MojoExecutionException("Classpath resource " + pomPropsPath + " is missing artifactId");
        }
        final String devModeVersion = devModeProps.getProperty("version");
        if (devModeVersion == null) {
            throw new MojoExecutionException("Classpath resource " + pomPropsPath + " is missing version");
        }

        final DefaultArtifact devModeJar = new DefaultArtifact(devModeGroupId, devModeArtifactId, ArtifactCoords.TYPE_JAR,
                devModeVersion);
        final DependencyResult cpRes = repoSystem.resolveDependencies(repoSession,
                new DependencyRequest()

View on GitHub (pinned to e1c734241f)

Solutions

  1. Delete ~/.m2/repository/io/quarkus/quarkus-bootstrap-maven-resolver and re-resolve with -U
  2. Run `jar tf` or `unzip -t` on the resolver jar to confirm integrity
  3. Check disk space and filesystem health; exclude the Maven repo from antivirus scanning
Defensive patterns

Strategy: retry

Validate before calling

unzip -t ~/.m2/repository/io/quarkus/quarkus-bootstrap-maven-resolver/<v>/quarkus-bootstrap-maven-resolver-<v>.jar

Try / catch

try {
    mvn quarkus:dev
} catch (MojoExecutionException e) {
    // delete ~/.m2/repository/io/quarkus/quarkus-bootstrap-maven-resolver and retry with -U
}

Prevention

When it happens

Trigger: devModeProps.load(is) throws IOException — typically an I/O error reading from the jar entry backing the classpath resource (corrupt jar, closed filesystem, disk error).

Common situations: Corrupted jar in ~/.m2/repository; interrupted download leaving a truncated artifact; filesystem/network mounts with I/O failures; antivirus locking jar files on Windows.

Related errors


AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05). Data as JSON: /api/errors/c6e64422a6334e28. Report an issue: GitHub.