quarkusio/quarkus · error · MojoExecutionException

The deployment artifact ${rootDeploymentGact} depends on the

Error message

The deployment artifact ${rootDeploymentGact} depends on the following Quarkus extension deployment artifacts whose corresponding runtime artifacts were not found among the dependencies of ${project.getArtifact()}:

What it means

After collecting the deployment artifact's dependency tree, the mojo verifies every Quarkus deployment dependency has a matching runtime dependency among the project's runtime dependencies. If some deployment deps lack runtime counterparts, it builds this detailed error listing them (via highlightInTree) and fails.

Source

Thrown at independent-projects/extension-maven-plugin/src/main/java/io/quarkus/maven/ExtensionDescriptorMojo.java:983

                if (!unexpectedDeploymentDeps.isEmpty()) {
                    if (buf.length() > 0) {
                        buf.append(System.lineSeparator());
                    }
                    buf.append("The deployment artifact ").append(rootDeploymentGact).append(
                            " depends on the following Quarkus extension deployment artifacts whose corresponding runtime artifacts were not found among the dependencies of ")
                            .append(project.getArtifact()).append(":");
                    for (ArtifactKey a : unexpectedDeploymentDeps) {
                        buf.append(' ').append(a);
                    }
                    log.error("The deployment artifact " + rootDeploymentGact
                            + " depends on the following Quarkus extension deployment artifacts whose corresponding runtime artifacts were not found among the dependencies of "
                            + project.getArtifact() + ":");
                    highlightInTree(deploymentNode, unexpectedDeploymentDeps);
                }
            }

            throw new MojoExecutionException(buf.toString());
        }

    }

    private DependencyResult resolveRuntimeDeps() throws MojoExecutionException {
        if (runtimeDeps == null) {
            try {
                runtimeDeps = repoSystem.resolveDependencies(repoSession,
                        new DependencyRequest().setCollectRequest(newCollectRuntimeDepsRequest()));
            } catch (Exception e) {
                throw new MojoExecutionException("Failed to resolve dependencies of " + project.getArtifact(), e);
            }
        }
        return runtimeDeps;
    }

    private void highlightInTree(DependencyNode node, Collection<ArtifactKey> keys) {
        highlightInTree(0, node, keys, new HashSet<>(), new StringBuilder(), new ArrayList<>());

View on GitHub (pinned to e1c734241f)

Solutions

  1. Add the missing runtime dependencies (e.g. io.quarkus:quarkus-xyz) matching each listed deployment artifact
  2. Keep deployment and runtime dependency lists in sync when adding cross-extension dependencies
  3. Use quarkus-maven-plugin extension scaffolding which generates matched pairs
  4. Run mvn dependency:tree on both runtime and deployment modules to compare

Example fix

<!-- before: deployment-only dep -->
<dependency>
  <groupId>io.quarkus</groupId>
  <artifactId>quarkus-xyz-deployment</artifactId>
</dependency>
<!-- after: add runtime counterpart -->
<dependency>
  <groupId>io.quarkus</groupId>
  <artifactId>quarkus-xyz</artifactId>
</dependency>
<dependency>
  <groupId>io.quarkus</groupId>
  <artifactId>quarkus-xyz-deployment</artifactId>
</dependency>
Defensive patterns

Strategy: validation

Validate before calling

mvn dependency:tree -pl runtime
diff <(mvn -q dependency:tree -pl runtime) <(mvn -q dependency:tree -pl deployment)

Prevention

When it happens

Trigger: The deployment module of the extension depends on io.quarkus:<something>-deployment but the runtime module/pom does not declare the corresponding io.quarkus:<something> runtime artifact.

Common situations: Adding a dependency on another extension's deployment artifact without adding its runtime artifact; version drift after refactoring; manually edited poms missing runtime counterpart.

Related errors


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