diff --git a/quarkus/server/pom.xml b/quarkus/server/pom.xml
index 8d23b75ccae7..61709d496a1e 100644
--- a/quarkus/server/pom.xml
+++ b/quarkus/server/pom.xml
@@ -21,6 +21,12 @@
+
+
+
+ ${project.build.directory}/kc
+
+
keycloak
@@ -39,6 +45,9 @@
${quarkus.version}
keycloak
+
+ ${kc.home.dir}
+
diff --git a/quarkus/server/src/main/java/org/keycloak/quarkus/_private/IDELauncher.java b/quarkus/server/src/main/java/org/keycloak/quarkus/_private/IDELauncher.java
index c1e59ff7e925..ebdfc3152a6d 100644
--- a/quarkus/server/src/main/java/org/keycloak/quarkus/_private/IDELauncher.java
+++ b/quarkus/server/src/main/java/org/keycloak/quarkus/_private/IDELauncher.java
@@ -1,5 +1,8 @@
package org.keycloak.quarkus._private;
+import java.io.File;
+import java.nio.file.Path;
+import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -27,6 +30,13 @@ public class IDELauncher {
public static void main(String[] args) {
List devArgs = new ArrayList<>();
+ if (System.getProperty("kc.home.dir") == null) {
+ // direct the auto-created files to the target folder, so they are cleaned by "mvn clean"
+ // users can still provide a different folder by setting the property when starting it from their IDE.
+ Path path = Paths.get(System.getProperty("user.dir"), "target", "kc");
+ System.setProperty("kc.home.dir", path.toAbsolutePath().toString());
+ }
+
devArgs.addAll(Arrays.asList(args));
if (devArgs.isEmpty()) {