{"record":{"id":"e4cdff0655226c25","repo":"quarkusio/quarkus","slug":"failed-to-locate-io-quarkus-quarkus-core-deploymen","errorCode":null,"errorMessage":"Failed to locate io.quarkus:quarkus-core-deployment on the application build classpath","messagePattern":"Failed to locate io\\.quarkus:quarkus-core-deployment on the application build classpath","errorType":"exception","errorClass":"GradleException","httpStatus":null,"severity":"error","filePath":"devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java","lineNumber":665,"sourceCode":"        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()\n                .create(String.format(\"%s:%s:%s\", coreDeployment.getGroupId(), coreDeployment.getArtifactId(),\n                        coreDeployment.getVersion()));\n    }\n\n    private void addLocalProject(ResolvedDependency project, DevModeCommandLineBuilder builder, Set<ArtifactKey> addeDeps,\n            boolean root) {\n        addeDeps.add(project.getKey());\n\n        final ArtifactSources sources = project.getSources();\n        if (sources == null) {\n            return;\n        }\n\n        Set<Path> sourcePaths = new LinkedHashSet<>();\n        Set<Path> sourceParentPaths = new LinkedHashSet<>();\n","sourceCodeStart":647,"sourceCodeEnd":683,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java#L647-L683","documentation":"QuarkusDev.getQuarkusCoreDeployment scans the application build classpath for a dependency with groupId io.quarkus and artifactId quarkus-core-deployment. If none is found it throws this GradleException, because Quarkus dev mode requires quarkus-core-deployment to assemble the deployment-time classpath.","triggerScenarios":"Running quarkusDev when no io.quarkus:quarkus-core-deployment dependency is resolvable on the application build classpath; raised from addQuarkusDevModeDeps via getQuarkusCoreDeployment.","commonSituations":"Projects applying the Quarkus plugin but missing the Quarkus platform/BOM dependency entirely; using only extension jars without the platform; a dependency-exclusion or strict conflict resolution that dropped quarkus-core-deployment; building a non-Quarkus module that accidentally applies the plugin.","solutions":["Add the Quarkus platform BOM: implementation enforcedPlatform('io.quarkus.platform:quarkus-bom:<version>').","Ensure at least one Quarkus extension (e.g. io.quarkus:quarkus-rest) is a dependency so the deployment artifact is pulled transitively.","Check dependencyInsight output: ./gradlew quarkusDev dependencyInsight --dependency quarkus-core-deployment.","Remove excludes that filter io.quarkus deployment artifacts.","Apply the Quarkus plugin only to modules that actually contain a Quarkus application."],"exampleFix":"// before\nplugins { id 'io.quarkus' }\ndependencies { }\n// after\nplugins { id 'io.quarkus' }\ndependencies {\n  implementation enforcedPlatform('io.quarkus.platform:quarkus-bom:3.15.0')\n  implementation 'io.quarkus:quarkus-rest'\n}","handlingStrategy":"validation","validationCode":"// Confirm quarkus-core-deployment resolves before starting dev mode\n./gradlew dependencyInsight --dependency quarkus-core-deployment\n// fail fast in build.gradle if absent\nconfigurations.runtimeClasspath.incoming.resolutionResult.allDependencies { }\n// or simply check: ./gradlew dependencies --configuration runtimeClasspath | grep quarkus-core-deployment","typeGuard":null,"tryCatchPattern":"try {\n  ./gradlew quarkusDev\n} catch (GradleException e) {\n  if (e.getMessage().contains(\"Failed to locate io.quarkus:quarkus-core-deployment\")) {\n    // add enforcedPlatform + at least one Quarkus extension, then retry\n  }\n}","preventionTips":["Always declare enforcedPlatform(io.quarkus.platform:quarkus-bom) in Quarkus projects.","Keep at least one Quarkus extension dependency so deployment artifacts resolve transitively.","Apply the Quarkus plugin only to application modules, not plain libraries.","Review dependency excludes that might drop io.quarkus artifacts."],"tags":["gradle","classpath","dependencies","quarkus-dev-mode"],"backgroundTag":"missing-classpath-dependency","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"}