quarkusio/quarkus · error · GradleException

Failed to locate io.quarkus:quarkus-core-deployment on the a

Error message

Failed to locate io.quarkus:quarkus-core-deployment on the application build classpath

What it means

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.

Source

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

        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()
                .create(String.format("%s:%s:%s", coreDeployment.getGroupId(), coreDeployment.getArtifactId(),
                        coreDeployment.getVersion()));
    }

    private void addLocalProject(ResolvedDependency project, DevModeCommandLineBuilder builder, Set<ArtifactKey> addeDeps,
            boolean root) {
        addeDeps.add(project.getKey());

        final ArtifactSources sources = project.getSources();
        if (sources == null) {
            return;
        }

        Set<Path> sourcePaths = new LinkedHashSet<>();
        Set<Path> sourceParentPaths = new LinkedHashSet<>();

View on GitHub (pinned to e1c734241f)

Solutions

  1. Add the Quarkus platform BOM: implementation enforcedPlatform('io.quarkus.platform:quarkus-bom:<version>').
  2. Ensure at least one Quarkus extension (e.g. io.quarkus:quarkus-rest) is a dependency so the deployment artifact is pulled transitively.
  3. Check dependencyInsight output: ./gradlew quarkusDev dependencyInsight --dependency quarkus-core-deployment.
  4. Remove excludes that filter io.quarkus deployment artifacts.
  5. Apply the Quarkus plugin only to modules that actually contain a Quarkus application.

Example fix

// before
plugins { id 'io.quarkus' }
dependencies { }
// after
plugins { id 'io.quarkus' }
dependencies {
  implementation enforcedPlatform('io.quarkus.platform:quarkus-bom:3.15.0')
  implementation 'io.quarkus:quarkus-rest'
}
Defensive patterns

Strategy: validation

Validate before calling

// Confirm quarkus-core-deployment resolves before starting dev mode
./gradlew dependencyInsight --dependency quarkus-core-deployment
// fail fast in build.gradle if absent
configurations.runtimeClasspath.incoming.resolutionResult.allDependencies { }
// or simply check: ./gradlew dependencies --configuration runtimeClasspath | grep quarkus-core-deployment

Try / catch

try {
  ./gradlew quarkusDev
} catch (GradleException e) {
  if (e.getMessage().contains("Failed to locate io.quarkus:quarkus-core-deployment")) {
    // add enforcedPlatform + at least one Quarkus extension, then retry
  }
}

Prevention

When it happens

Trigger: Running quarkusDev when no io.quarkus:quarkus-core-deployment dependency is resolvable on the application build classpath; raised from addQuarkusDevModeDeps via getQuarkusCoreDeployment.

Common situations: 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.

Related errors


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