Skip to content

Commit

Permalink
Merge pull request #16351 from glefloch/fix/16328
Browse files Browse the repository at this point in the history
Handle gradle buildchain in quarkusDev task
  • Loading branch information
glefloch committed Apr 9, 2021
2 parents d513e9b + 7ef8672 commit b790e96
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 5 deletions.
Expand Up @@ -10,16 +10,17 @@ public class GradleDevModeLauncher extends QuarkusDevModeLauncher {
* Initializes the launcher builder
*
* @param logger the logger
* @param java java binary to use
* @return launcher builder
*/
public static Builder builder(Logger logger) {
return new GradleDevModeLauncher(logger).new Builder();
public static Builder builder(Logger logger, String java) {
return new GradleDevModeLauncher(logger).new Builder(java);
}

public class Builder extends QuarkusDevModeLauncher.Builder<GradleDevModeLauncher, Builder> {

private Builder() {
super(null);
private Builder(String java) {
super(java);
}
}

Expand Down
Expand Up @@ -25,14 +25,20 @@
import org.gradle.api.artifacts.ResolvedDependency;
import org.gradle.api.plugins.JavaPlugin;
import org.gradle.api.plugins.JavaPluginConvention;
import org.gradle.api.plugins.JavaPluginExtension;
import org.gradle.api.provider.Provider;
import org.gradle.api.tasks.Input;
import org.gradle.api.tasks.InputDirectory;
import org.gradle.api.tasks.Nested;
import org.gradle.api.tasks.Optional;
import org.gradle.api.tasks.SourceSet;
import org.gradle.api.tasks.SourceSetContainer;
import org.gradle.api.tasks.TaskAction;
import org.gradle.api.tasks.compile.JavaCompile;
import org.gradle.api.tasks.options.Option;
import org.gradle.jvm.toolchain.JavaLauncher;
import org.gradle.jvm.toolchain.JavaToolchainService;
import org.gradle.jvm.toolchain.JavaToolchainSpec;

import io.quarkus.bootstrap.BootstrapConstants;
import io.quarkus.bootstrap.model.AppArtifact;
Expand Down Expand Up @@ -164,6 +170,16 @@ public void setCompilerArgs(List<String> compilerArgs) {
this.compilerArgs = compilerArgs;
}

@Nested
@Optional
public Provider<JavaLauncher> getJavaLauncher() {
Project project = getProject();
JavaToolchainService toolChainService = project.getExtensions().getByType(JavaToolchainService.class);
JavaToolchainSpec toolchainSpec = project.getExtensions().getByType(JavaPluginExtension.class).getToolchain();
Provider<JavaLauncher> javaLauncher = toolChainService.launcherFor(toolchainSpec);
return javaLauncher;
}

@TaskAction
public void startDev() {
if (!getSourceDir().isDirectory()) {
Expand Down Expand Up @@ -192,7 +208,14 @@ public void startDev() {

private QuarkusDevModeLauncher newLauncher() throws Exception {
final Project project = getProject();
GradleDevModeLauncher.Builder builder = GradleDevModeLauncher.builder(getLogger())

String java = null;
Provider<JavaLauncher> javaLauncher = getJavaLauncher();
if (javaLauncher.isPresent()) {
java = javaLauncher.get().getExecutablePath().getAsFile().getAbsolutePath();
}

GradleDevModeLauncher.Builder builder = GradleDevModeLauncher.builder(getLogger(), java)
.preventnoverify(isPreventnoverify())
.projectDir(project.getProjectDir())
.buildDir(getBuildDir())
Expand Down

0 comments on commit b790e96

Please sign in to comment.