quarkusio/quarkus · error · GradleException

Classpath resource + pomPropsPath + is missing version

Error message

Classpath resource + pomPropsPath + is missing version

What it means

QuarkusDev.getQuarkusBootstrapResolver validates that the classpath poms.properties resource carries groupId, artifactId and version; this GradleException is thrown when 'version' is absent. The version is required to construct the dev-mode bootstrap dependency coordinate string 'groupId:artifactId:version'.

Source

Thrown at devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java:649

            throw new GradleException("Failed to locate " + pomPropsPath + " on the classpath");
        }
        final Properties devModeProps = new Properties();
        try (InputStream is = devModePomPropsIs) {
            devModeProps.load(is);
        } catch (IOException e) {
            throw new GradleException("Failed to load " + pomPropsPath + " from the classpath", e);
        }
        final String devModeGroupId = devModeProps.getProperty("groupId");
        if (devModeGroupId == null) {
            throw new GradleException("Classpath resource " + pomPropsPath + " is missing groupId");
        }
        final String devModeArtifactId = devModeProps.getProperty("artifactId");
        if (devModeArtifactId == null) {
            throw new GradleException("Classpath resource " + pomPropsPath + " is missing artifactId");
        }
        final String devModeVersion = devModeProps.getProperty("version");
        if (devModeVersion == null) {
            throw new GradleException("Classpath resource " + pomPropsPath + " is missing version");
        }
        return project.getDependencies()
                .create(String.format("%s:%s:%s", devModeGroupId, devModeArtifactId, devModeVersion));
    }

    private Dependency getQuarkusCoreDeployment(ApplicationModel appModel) {
        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 GradleException("Failed to locate io.quarkus:quarkus-core-deployment on the application build classpath");
        }
        return project.getDependencies()

View on GitHub (pinned to e1c734241f)

Solutions

  1. Delete cached io.quarkus artifacts from the Gradle/Maven local caches and rebuild with --refresh-dependencies.
  2. Pin identical Quarkus plugin and platform versions across all modules of the build.
  3. Inspect the jar's poms.properties to verify groupId/artifactId/version are all present.
  4. Run ./gradlew --stop and clean the project to remove stale daemon/classpath state.

Example fix

// before: mismatched versions across modules
// moduleA: id 'io.quarkus' version '3.2.0.Final'; moduleB: '3.15.0'
// after: single version via settings.gradle pluginManagement
pluginManagement {
  plugins { id 'io.quarkus' version '3.15.0' }
}
Defensive patterns

Strategy: validation

Validate before calling

// Assert one Quarkus version across all modules before invoking dev tasks
// e.g. grep all build files for io.quarkus plugin versions and compare
grep -rE "id \('io.quarkus' version" */build.gradle | sort -u  # must yield exactly one version

Try / catch

try {
  ./gradlew quarkusDev
} catch (GradleException e) {
  if (e.getMessage().contains("is missing version")) {
    // align plugin versions via pluginManagement in settings.gradle and refresh dependencies
  }
}

Prevention

When it happens

Trigger: quarkusDev task execution where the poms.properties resource found on the classpath is missing the 'version' property; raised in getQuarkusBootstrapResolver, called by getQuarkusGradleBootstrapResolver and getQuarkusMavenBootstrapResolver.

Common situations: Partially written pom.properties during an interrupted dependency download; timestamped snapshot jars whose metadata was stripped; mixing Quarkus plugin versions across multi-module builds; corrupted local repositories on CI.

Related errors


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