diff --git a/devtools/gradle/src/functionalTest/java/io/quarkus/gradle/QuarkusPluginFunctionalTest.java b/devtools/gradle/src/functionalTest/java/io/quarkus/gradle/QuarkusPluginFunctionalTest.java index f2746b1cb495bf..62b06e729a44ca 100644 --- a/devtools/gradle/src/functionalTest/java/io/quarkus/gradle/QuarkusPluginFunctionalTest.java +++ b/devtools/gradle/src/functionalTest/java/io/quarkus/gradle/QuarkusPluginFunctionalTest.java @@ -4,6 +4,7 @@ import java.io.File; import java.io.IOException; +import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -81,6 +82,9 @@ public void canBuild(SourceType sourceType) throws IOException, InterruptedExcep assertThat(build.task(":build").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); // gradle build should not build the native image assertThat(build.task(":buildNative")).isNull(); + Path buildDir = projectRoot.toPath().resolve("build"); + assertThat(buildDir).exists(); + assertThat(buildDir.resolve("foo-1.0.0-SNAPSHOT-runner")).doesNotExist(); } private void createProject(SourceType sourceType) throws IOException { diff --git a/devtools/gradle/src/main/java/io/quarkus/gradle/QuarkusPlugin.java b/devtools/gradle/src/main/java/io/quarkus/gradle/QuarkusPlugin.java index 109d1bfdf1b344..2f1e0b0d6b7f4f 100644 --- a/devtools/gradle/src/main/java/io/quarkus/gradle/QuarkusPlugin.java +++ b/devtools/gradle/src/main/java/io/quarkus/gradle/QuarkusPlugin.java @@ -116,10 +116,12 @@ private void registerTasks(Project project) { testNative.dependsOn(quarkusBuild); testNative.setShouldRunAfter(Collections.singletonList(tasks.findByName(JavaPlugin.TEST_TASK_NAME))); - Consumer configureTestNativeTask = t -> project.getExtensions().getExtraProperties() - .set("quarkus.package.type", "native"); - tasks.withType(QuarkusTestNative.class).forEach(configureTestNativeTask); - tasks.withType(QuarkusTestNative.class).whenTaskAdded(configureTestNativeTask::accept); + project.getGradle().getTaskGraph().whenReady(taskGraph -> { + if (taskGraph.hasTask(testNative)) { + project.getExtensions().getExtraProperties() + .set("quarkus.package.type", "native"); + } + }); Consumer configureTestTask = t -> { // Quarkus test configuration task which should be executed before any Quarkus test