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
- Delete ~/.m2/repository/io/quarkus/quarkus-bootstrap-maven-resolver and re-resolve with -U
- Run `jar tf` or `unzip -t` on the resolver jar to confirm integrity
- 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
- Ensure stable disk/network when downloading Maven artifacts
- Exclude ~/.m2 from antivirus or sync tools
- Retry resolution with -U after any IO-related build failure
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
- Failed to locate <pomPropsPath> on the classpath
- Failed to read or parse module-info.class
- Failed to read
- Failed to create a URL list out of ${mvnLib} content
- Failed to read %s
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/c6e64422a6334e28.
Report an issue: GitHub.