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
- Run `quarkus update` from the root of a Maven (pom.xml) or Gradle (build.gradle / build.gradle.kts) project.
- Check which build tool was detected for the project and ensure a valid pom.xml or build.gradle exists at the project root.
- 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
- Only invoke the update command from a project root containing pom.xml or build.gradle/.kts.
- Check the detected build tool (BuildTool detection) before launching the update and fail fast with a clear message.
- Document that projects using other build systems must migrate manually per the Quarkus migration guide.
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
- Error while running Gradle rewrite command, see the executio
- The %s command exited with an error. %s
- This build tool does not support update ${buildTool}
- This operation is only supported for Gradle projects
- Failed to apply recommended updates
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/b2a3031b7e748e40.
Report an issue: GitHub.