quarkusio/quarkus · error · MojoExecutionException

Classpath resource <pomPropsPath> is missing version

Error message

Classpath resource <pomPropsPath> is missing version

What it means

DevMojo reads version from the quarkus-bootstrap-maven-resolver pom.properties and throws this MojoExecutionException if the version key is missing. The version is then used to construct the DefaultArtifact for the dev-mode jar, so it is mandatory.

Source

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

            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()
                        .setCollectRequest(
                                new CollectRequest()
                                        // it doesn't matter what the root artifact is, it's an alias
                                        .setRootArtifact(new DefaultArtifact(IO_QUARKUS, "quarkus-devmode-alias",
                                                ArtifactCoords.TYPE_JAR, "1.0"))
                                        .setManagedDependencies(getProjectAetherDependencyManagement())
                                        .setDependencies(List.of(
                                                new org.eclipse.aether.graph.Dependency(devModeJar, JavaScopes.RUNTIME),
                                                new org.eclipse.aether.graph.Dependency(new DefaultArtifact(
                                                        coreDeployment.getGroupId(), coreDeployment.getArtifactId(),
                                                        coreDeployment.getClassifier(), coreDeployment.getType(),
                                                        coreDeployment.getVersion()), JavaScopes.RUNTIME)))

View on GitHub (pinned to e1c734241f)

Solutions

  1. Remove io/quarkus/quarkus-bootstrap-maven-resolver from the local repo and re-resolve with -U
  2. Reinstall the quarkus-maven-plugin at a version matching the platform BOM
  3. Confirm pom.properties inside the jar lists groupId, artifactId and version
Defensive patterns

Strategy: validation

Validate before calling

unzip -p <resolver.jar> META-INF/maven/io.quarkus/quarkus-bootstrap-maven-resolver/pom.properties
# must contain groupId, artifactId and version lines

Prevention

When it happens

Trigger: The pom.properties resource has groupId and artifactId but no `version` property — incomplete Maven metadata inside the resolver jar.

Common situations: Stripped or hand-modified pom.properties in a repackaged jar; corrupted artifact in local repository; mismatched plugin/jar versions after a partial upgrade.

Related errors


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