quarkusio/quarkus · error · MojoExecutionException

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

DevMojo (quarkus:dev) requires the quarkus-core-deployment artifact on the application's build classpath to launch dev mode. After scanning project dependencies it looks for an artifact with groupId io.quarkus and artifactId quarkus-core-deployment; if none is found it aborts with this MojoExecutionException. It indicates the Quarkus core deployment jar is not a resolved dependency of the project being run.

Source

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

                .map(Xpp3Dom::getValue)
                .map(String::trim)
                .filter(not(String::isEmpty))
                .ifPresent(builderCall);
    }

    private void addQuarkusDevModeDeps(DevModeCommandLineBuilder builder, ApplicationModel appModel)
            throws MojoExecutionException, DependencyResolutionException {

        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 MojoExecutionException(
                    "Failed to locate io.quarkus:quarkus-core-deployment on the application build classpath");
        }

        final String pomPropsPath = "META-INF/maven/io.quarkus/quarkus-bootstrap-maven-resolver/pom.properties";
        final InputStream devModePomPropsIs = DevModeMain.class.getClassLoader().getResourceAsStream(pomPropsPath);
        if (devModePomPropsIs == null) {
            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");
        }

View on GitHub (pinned to e1c734241f)

Solutions

  1. Add at least one Quarkus extension dependency (e.g. io.quarkus:quarkus-arc) which pulls in quarkus-core-deployment transitively
  2. Import io.quarkus.platform:quarkus-bom (matching your Quarkus version) in dependencyManagement
  3. Run with -U to refresh resolution and verify `mvn dependency:tree | grep quarkus-core-deployment` shows the artifact
  4. Check for exclusions of io.quarkus artifacts in the pom or parent POM

Example fix

// before
<dependencies>
  <!-- no quarkus dependencies -->
</dependencies>
// after
<dependencies>
  <dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-arc</artifactId>
  </dependency>
</dependencies>
Defensive patterns

Strategy: validation

Validate before calling

mvn dependency:tree -Dincludes=io.quarkus:quarkus-core-deployment
# must print a resolved node before running quarkus:dev

Prevention

When it happens

Trigger: Running `mvn quarkus:dev` on a project whose resolved dependencies contain no io.quarkus:quarkus-core-deployment artifact — e.g. no quarkus-* runtime extension dependencies at all, a dependency management setup that excludes/transfers quarkus-core-deployment, or an application model whose dependencies were filtered before the scan.

Common situations: Missing quarkus-maven-plugin/extension dependencies in pom.xml; using an import-only BOM without adding any quarkus extension dependency; a custom parent POM excluding io.quarkus artifacts; corrupted/partial local repository where the deployment artifact failed to resolve silently.

Related errors


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