{"record":{"id":"99387ff53e804d47","repo":"quarkusio/quarkus","slug":"classpath-resource-pompropspath-is-missing-ver","errorCode":null,"errorMessage":"Classpath resource + pomPropsPath + is missing version","messagePattern":"Classpath resource \\+ pomPropsPath \\+ is missing version","errorType":"exception","errorClass":"GradleException","httpStatus":null,"severity":"error","filePath":"devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java","lineNumber":649,"sourceCode":"            throw new GradleException(\"Failed to locate \" + pomPropsPath + \" on the classpath\");\n        }\n        final Properties devModeProps = new Properties();\n        try (InputStream is = devModePomPropsIs) {\n            devModeProps.load(is);\n        } catch (IOException e) {\n            throw new GradleException(\"Failed to load \" + pomPropsPath + \" from the classpath\", e);\n        }\n        final String devModeGroupId = devModeProps.getProperty(\"groupId\");\n        if (devModeGroupId == null) {\n            throw new GradleException(\"Classpath resource \" + pomPropsPath + \" is missing groupId\");\n        }\n        final String devModeArtifactId = devModeProps.getProperty(\"artifactId\");\n        if (devModeArtifactId == null) {\n            throw new GradleException(\"Classpath resource \" + pomPropsPath + \" is missing artifactId\");\n        }\n        final String devModeVersion = devModeProps.getProperty(\"version\");\n        if (devModeVersion == null) {\n            throw new GradleException(\"Classpath resource \" + pomPropsPath + \" is missing version\");\n        }\n        return project.getDependencies()\n                .create(String.format(\"%s:%s:%s\", devModeGroupId, devModeArtifactId, devModeVersion));\n    }\n\n    private Dependency getQuarkusCoreDeployment(ApplicationModel appModel) {\n        ResolvedDependency coreDeployment = null;\n        for (ResolvedDependency d : appModel.getDependencies()) {\n            if (d.isDeploymentCp() && d.getArtifactId().equals(\"quarkus-core-deployment\")\n                    && d.getGroupId().equals(\"io.quarkus\")) {\n                coreDeployment = d;\n                break;\n            }\n        }\n        if (coreDeployment == null) {\n            throw new GradleException(\"Failed to locate io.quarkus:quarkus-core-deployment on the application build classpath\");\n        }\n        return project.getDependencies()","sourceCodeStart":631,"sourceCodeEnd":667,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java#L631-L667","documentation":"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'.","triggerScenarios":"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.","commonSituations":"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.","solutions":["Delete cached io.quarkus artifacts from the Gradle/Maven local caches and rebuild with --refresh-dependencies.","Pin identical Quarkus plugin and platform versions across all modules of the build.","Inspect the jar's poms.properties to verify groupId/artifactId/version are all present.","Run ./gradlew --stop and clean the project to remove stale daemon/classpath state."],"exampleFix":"// before: mismatched versions across modules\n// moduleA: id 'io.quarkus' version '3.2.0.Final'; moduleB: '3.15.0'\n// after: single version via settings.gradle pluginManagement\npluginManagement {\n  plugins { id 'io.quarkus' version '3.15.0' }\n}","handlingStrategy":"validation","validationCode":"// Assert one Quarkus version across all modules before invoking dev tasks\n// e.g. grep all build files for io.quarkus plugin versions and compare\ngrep -rE \"id \\('io.quarkus' version\" */build.gradle | sort -u  # must yield exactly one version","typeGuard":null,"tryCatchPattern":"try {\n  ./gradlew quarkusDev\n} catch (GradleException e) {\n  if (e.getMessage().contains(\"is missing version\")) {\n    // align plugin versions via pluginManagement in settings.gradle and refresh dependencies\n  }\n}","preventionTips":["Centralize the Quarkus version in gradle/libs.versions.toml or pluginManagement.","Avoid mixing snapshot and release Quarkus artifacts.","Re-download after network interruptions that may truncate artifacts.","Run dependency verification (./gradlew --dependency-verification strict) to catch corrupt artifacts."],"tags":["gradle","classpath","build","quarkus-dev-mode"],"backgroundTag":"corrupted-dependency-metadata","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}