quarkusio/quarkus · error · MojoExecutionException
Failed to locate <pomPropsPath> on the classpath
Error message
Failed to locate <pomPropsPath> on the classpath
What it means
DevMojo loads the pom.properties resource of quarkus-bootstrap-maven-resolver from its own classloader to determine dev-mode coordinates. If that classpath resource cannot be found it throws this MojoExecutionException. It signals a broken or incomplete quarkus-bootstrap-maven-resolver jar on the plugin classpath.
Source
Thrown at devtools/maven/src/main/java/io/quarkus/maven/DevMojo.java:1707
throws MojoExecutionException, DependencyResolutionException {
ResolvedDependency coreDeployment = null;
for (ResolvedDependency d : appModel.getDependencies()) {
if (d.isDeploymentCp() && d.getArtifactId().equals("quarkus-core-deployment")
&& d.getGroupId().equals(IO_QUARKUS)) {
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");View on GitHub (pinned to e1c734241f)
Solutions
- Delete the io/quarkus/quarkus-bootstrap-maven-resolver directory from the local repository (~/.m2/repository) and rebuild with -U to re-download
- Upgrade or reinstall the quarkus-maven-plugin to a consistent Quarkus version
- Check that no shade/minimize configuration strips META-INF/maven from plugin dependencies
Example fix
// before # corrupted local artifact rm -rf ~/.m2/repository/io/quarkus/quarkus-bootstrap-maven-resolver mvn -U quarkus:dev
Defensive patterns
Strategy: validation
Validate before calling
unzip -p ~/.m2/repository/io/quarkus/quarkus-bootstrap-maven-resolver/<v>/quarkus-bootstrap-maven-resolver-<v>.jar META-INF/maven/io.quarkus/quarkus-bootstrap-maven-resolver/pom.properties
Prevention
- Keep the local repository clean; re-download artifacts showing odd behavior
- Never repackage/shade quarkus bootstrap jars
- Pin plugin and platform versions together
When it happens
Trigger: DevMojo.class / DevModeMain classloader returns null for META-INF/maven/io.quarkus/quarkus-bootstrap-maven-resolver/pom.properties — i.e. the resolver jar is missing, stripped, or repackaged without its META-INF/maven metadata.
Common situations: A partially downloaded or corrupted local Maven repository jar; an uber/relocated repackaging of quarkus-bootstrap-maven-resolver; aggressive jar filtering (minimizeJar) or shaded builds dropping META-INF/maven; proxy-mirrored repository serving truncated artifacts.
Related errors
- Failed to locate io.quarkus:quarkus-core-deployment on the a
- Failed to load <pomPropsPath> from the classpath
- Classpath resource <pomPropsPath> is missing groupId
- Classpath resource <pomPropsPath> is missing artifactId
- Classpath resource <pomPropsPath> is missing version
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/c3b1df7f2bfb3796.
Report an issue: GitHub.