Repository: quarkusio/quarkus
Issue: devmode - Not using JVM instrumentation, but always full restart 

## Describe the bug
I read from @maxandersen that in 1.11+ devmode new ability to detect wether a change can be applied using JVM instrumentation (what ides uses to update running jvms) or it requires a restart as devmode usually do.

### Expected behavior
Hot swap/reload applying JVM instrumentation, without a restart.

### Actual behavior
There´s always a restart, see logs below:

```
12:38:28: Executing task 'quarkusDev'...


> Task :quarkusGenerateCode
preparing quarkus application

> Task :compileJava
> Task :processResources UP-TO-DATE
> Task :classes

> Task :quarkusDev
Listening for transport dt_socket at address: 5005

2021-03-22 12:38:35,557 INFO  [io.quarkus] (Quarkus Main Thread) my-artifactId my-version on JVM (powered by Quarkus 1.12.2.Final) started in 3.008s. Listening on: http://localhost:8080
2021-03-22 12:38:35,561 INFO  [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated.
2021-03-22 12:38:35,562 INFO  [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, resteasy, resteasy-jackson]
2021-03-22 12:38:51,100 INFO  [io.qua.dep.dev.RuntimeUpdatesProcessor] (vert.x-worker-thread-1) Changed source files detected, recompiling [/Users/admin/dev/others/my-artifactId/src/main/java/org/my/group/MyResource.java]
2021-03-22 12:38:51,597 WARN  [io.qua.dep.dev.JavaCompilationProvider] (vert.x-worker-thread-1) system modules path not set in conjunction with -source 11, line -1 in [unknown source]
2021-03-22 12:38:51,663 INFO  [io.quarkus] (Quarkus Main Thread) my-artifactId stopped in 0.065s

2021-03-22 12:38:52,370 INFO  [io.quarkus] (Quarkus Main Thread) my-artifactId my-version on JVM (powered by Quarkus 1.12.2.Final) started in 0.701s. Listening on: http://localhost:8080
2021-03-22 12:38:52,371 INFO  [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated.
2021-03-22 12:38:52,371 INFO  [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, resteasy, resteasy-jackson]
2021-03-22 12:38:52,371 INFO  [io.qua.dep.dev.RuntimeUpdatesProcessor] (vert.x-worker-thread-1) Hot replace total time: 1.273s 
```

## To Reproduce
- I´ve used directly the output of
```
 mvn io.quarkus:quarkus-maven-plugin:1.12.2.Final:create \\
    -DprojectGroupId=my-groupId \\
    -DprojectArtifactId=my-artifactId \\
    -DprojectVersion=my-version \\
    -DclassName="org.my.group.MyResource" \\
    -Dextensions="resteasy,resteasy-jackson" \\
    -DbuildTool=gradle
```

## Environment (please complete the following information):
Intellij IDEA community 2020.3 build 203.5981.155 (also from console directly)
OS: Mac
Quarkus 1.12.2

### Output of `java -version`
>java -version
openjdk version "15" 2020-09-15
OpenJDK Runtime Environment (build 15+36-1562)
OpenJDK 64-Bit Server VM (build 15+36-1562, mixed mode, sharing)

### GraalVM version (if different from Java)
Not used

### Quarkus version or git rev
1.12.2

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)
Gradle 6.8.3

Changed files:
devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java

diff --git a/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java b/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java
index d8c94a0a744..07fcf7de684 100644
--- a/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java
+++ b/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java
@@ -236,11 +236,21 @@ private QuarkusDevModeLauncher newLauncher() throws Exception {
 
         for (AppDependency appDependency : appModel.getFullDeploymentDeps()) {
             final AppArtifact appArtifact = appDependency.getArtifact();
+            //we only use the launcher for launching from the IDE, we need to exclude it
+            if (appArtifact.getGroupId().equals("io.quarkus") && appArtifact.getGroupId().equals("quarkus-ide-launcher")) {
+                continue;
+            }
             if (!projectDependencies.contains(new AppArtifactKey(appArtifact.getGroupId(), appArtifact.getArtifactId()))) {
                 appArtifact.getPaths().forEach(p -> {
                     if (Files.exists(p)) {
-                        addToClassPaths(builder, p.toFile());
+                        if (appArtifact.getGroupId().equals("io.quarkus")
+                                && appArtifact.getArtifactId().equals("quarkus-class-change-agent")) {
+                            builder.jvmArgs("-javaagent:" + p.toFile().getAbsolutePath());
+                        } else {
+                            addToClassPaths(builder, p.toFile());
+                        }
                     }
+
                 });
             }
         }