diff --git a/src/main/java/net/fabricmc/loom/decompilers/fernflower/AbstractFernFlowerDecompiler.java b/src/main/java/net/fabricmc/loom/decompilers/fernflower/AbstractFernFlowerDecompiler.java index ecc1386..61dbaf0 100644 --- a/src/main/java/net/fabricmc/loom/decompilers/fernflower/AbstractFernFlowerDecompiler.java +++ b/src/main/java/net/fabricmc/loom/decompilers/fernflower/AbstractFernFlowerDecompiler.java @@ -100,7 +100,7 @@ public abstract class AbstractFernFlowerDecompiler implements LoomDecompiler { progressGroup.started(); ExecResult result = ForkingJavaExec.javaexec( - project, + project.getRootProject().getPlugins().hasPlugin("fabric-loom") ? project.getRootProject() : project, spec -> { spec.setMain(fernFlowerExecutor().getName()); spec.jvmArgs("-Xms200m", "-Xmx3G"); diff --git a/src/main/java/net/fabricmc/loom/decompilers/fernflower/ForkingJavaExec.java b/src/main/java/net/fabricmc/loom/decompilers/fernflower/ForkingJavaExec.java index f7e771d..8b5f5f6 100644 --- a/src/main/java/net/fabricmc/loom/decompilers/fernflower/ForkingJavaExec.java +++ b/src/main/java/net/fabricmc/loom/decompilers/fernflower/ForkingJavaExec.java @@ -24,12 +24,11 @@ package net.fabricmc.loom.decompilers.fernflower; -import java.util.HashSet; -import java.util.Set; - import org.gradle.api.Action; import org.gradle.api.Project; -import org.gradle.api.artifacts.Configuration; +import org.gradle.api.artifacts.ConfigurationContainer; +import org.gradle.api.artifacts.dsl.DependencyHandler; +import org.gradle.api.file.FileCollection; import org.gradle.process.ExecResult; import org.gradle.process.JavaExecSpec; @@ -41,20 +40,14 @@ import org.gradle.process.JavaExecSpec; */ public class ForkingJavaExec { public static ExecResult javaexec(Project project, Action action) { + ConfigurationContainer configurations = project.getBuildscript().getConfigurations(); + DependencyHandler handler = project.getDependencies(); + FileCollection classpath = configurations.getByName("classpath")// + .plus(configurations.detachedConfiguration(handler.localGroovy())); + return project.javaexec(spec -> { - spec.classpath(getForkedFernflowerClasspath(project)); + spec.classpath(classpath); action.execute(spec); }); } - - private static Configuration[] getForkedFernflowerClasspath(Project project) { - Set allConfigurations = new HashSet<>(); - allConfigurations.addAll(project.getBuildscript().getConfigurations()); - - if (project.getRootProject() != project) { - allConfigurations.addAll(project.getRootProject().getBuildscript().getConfigurations()); - } - - return allConfigurations.toArray(new Configuration[0]); - } }