quarkusio/quarkus · error · QuarkusUpdateException

${buildTool} is not supported yet

Error message

${buildTool} is not supported yet

What it means

QuarkusUpdateCommand.handle() drives the OpenRewrite-based project update. It only supports BuildTool values MAVEN, GRADLE, and GRADLE_KOTLIN_DSL; for any other build tool it throws QuarkusUpdateException with the build tool key and "is not supported yet". This is an intentional guard: the update command generates Maven or Gradle rewrite invocations and has no recipe runner for other build systems.

Source

Thrown at independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/project/update/rewrite/QuarkusUpdateCommand.java:64

    public static String ADDITIONAL_SOURCE_FILES = String.join(",", ADDITIONAL_SOURCE_FILES_SET);

    public static String goal(boolean dryRun) {
        return dryRun ? "dryRun" : "run";
    }

    public static void handle(MessageWriter log, BuildTool buildTool, Path baseDir,
            String rewritePluginVersion, String recipesGAV, Path recipe, Path logFile, boolean dryRun) {
        switch (buildTool) {
            case MAVEN:
                runMavenUpdate(log, baseDir, rewritePluginVersion, recipesGAV, recipe, logFile, dryRun);
                break;
            case GRADLE:
            case GRADLE_KOTLIN_DSL:
                runGradleUpdate(log, baseDir, rewritePluginVersion, recipesGAV, recipe, logFile, dryRun);
                break;
            default:
                throw new QuarkusUpdateException(buildTool.getKey() + " is not supported yet");
        }
    }

    private static void runMavenUpdate(MessageWriter log, Path baseDir, String rewritePluginVersion, String recipesGAV,
            Path recipe,
            Path logFile, boolean dryRun) {
        final String mvnBinary = findMvnBinary(baseDir);
        Map<String, List<String>> commands = new LinkedHashMap<>();
        commands.put(getRewriteCommandName(rewritePluginVersion, dryRun),
                getMavenUpdateCommand(mvnBinary, rewritePluginVersion, recipesGAV, recipe, dryRun));

        // format the sources
        if (!dryRun) {
            commands.put("process-sources", getMavenProcessSourcesCommand(mvnBinary));
        }

        executeRewrite(baseDir, commands, log, logFile);
    }

View on GitHub (pinned to e1c734241f)

Solutions

  1. Run `quarkus update` from the root of a Maven (pom.xml) or Gradle (build.gradle / build.gradle.kts) project.
  2. Check which build tool was detected for the project and ensure a valid pom.xml or build.gradle exists at the project root.
  3. For projects on other build systems, perform the update manually following the Quarkus migration guide (https://quarkus.io/guides/update-migrating) instead of the automated rewrite command.

Example fix

// before: running update in an unsupported project
$ quarkus update
QuarkusUpdateException: maven_sbt is not supported yet

// after: ensure the project root has a supported build file
$ ls pom.xml   # or build.gradle / build.gradle.kts
$ quarkus update
Defensive patterns

Strategy: validation

Validate before calling

import io.quarkus.devtools.project.BuildTool;
import io.quarkus.devtools.project.update.rewrite.QuarkusUpdateCommand;

Set<BuildTool> SUPPORTED = Set.of(BuildTool.MAVEN, BuildTool.GRADLE, BuildTool.GRADLE_KOTLIN_DSL);

if (buildTool == null || !SUPPORTED.contains(buildTool)) {
    throw new IllegalArgumentException(
        "quarkus update supports only Maven or Gradle projects; detected: "
            + (buildTool == null ? "unknown" : buildTool.getKey()));
}
QuarkusUpdateCommand.handle(log, buildTool, baseDir, rewritePluginVersion, recipesGAV, recipe, logFile, dryRun);

Type guard

static boolean isSupportedBuildTool(BuildTool t) {
    return t == BuildTool.MAVEN || t == BuildTool.GRADLE || t == BuildTool.GRADLE_KOTLIN_DSL;
}

Try / catch

try {
    QuarkusUpdateCommand.handle(log, buildTool, baseDir, rewritePluginVersion, recipesGAV, recipe, logFile, dryRun);
} catch (QuarkusUpdateException e) {
    if (e.getMessage() != null && e.getMessage().endsWith("is not supported yet")) {
        log.error("Project uses build tool '%s'; migrate manually per the Quarkus migration guide.", e.getMessage());
    } else {
        throw e;
    }
}

Prevention

When it happens

Trigger: Calling QuarkusUpdateCommand.handle(log, buildTool, baseDir, rewritePluginVersion, recipesGAV, recipe, logFile, dryRun) with a BuildTool other than MAVEN, GRADLE, or GRADLE_KOTLIN_DSL (e.g. a custom/unknown key), typically via `quarkus update` on a project whose build tool cannot be resolved to Maven or Gradle.

Common situations: Running `quarkus update` in a directory that is not a Maven or Gradle project (e.g. a bare source tree, an sbt/Bazel project, or a mis-detected project where quarkus.cli.properties / project metadata yields an unsupported build tool).

Related errors


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