diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/forge/ForgeUserdevProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/forge/ForgeUserdevProvider.java index d15eff8d..358fd110 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/forge/ForgeUserdevProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/forge/ForgeUserdevProvider.java @@ -303,7 +303,7 @@ public class ForgeUserdevProvider extends DependencyProvider { } private Set minecraftClasspath() { - return DependencyDownloader.resolveFiles(getProject(), getProject().getConfigurations().getByName(Constants.Configurations.FORGE_RUNTIME_LIBRARY), true); + return DependencyDownloader.resolveFiles(getProject().getConfigurations().getByName(Constants.Configurations.FORGE_RUNTIME_LIBRARY), true); } public File getUserdevJar() { diff --git a/src/main/java/net/fabricmc/loom/util/DependencyDownloader.java b/src/main/java/net/fabricmc/loom/util/DependencyDownloader.java index ede29cc0..329d88bf 100644 --- a/src/main/java/net/fabricmc/loom/util/DependencyDownloader.java +++ b/src/main/java/net/fabricmc/loom/util/DependencyDownloader.java @@ -25,8 +25,7 @@ package net.fabricmc.loom.util; import java.io.File; -import java.util.ArrayList; -import java.util.List; +import java.util.LinkedHashSet; import java.util.Set; import org.gradle.api.Project; @@ -70,21 +69,16 @@ public final class DependencyDownloader { return files; } - private static List collectDependencies(Configuration configuration) { - List dependencies = new ArrayList<>(); + private static Set resolve(Configuration configuration, boolean transitive) { + Configuration copy = configuration.copy(); + copy.setTransitive(transitive); + Set files = new LinkedHashSet<>(copy.resolve()); - for (Configuration extendsFrom : configuration.getExtendsFrom()) { - dependencies.addAll(collectDependencies(extendsFrom)); + for (Configuration extendsForm : configuration.getExtendsFrom()) { + files.addAll(resolve(extendsForm, transitive)); } - dependencies.addAll(configuration.getDependencies()); - return dependencies; - } - - private static Configuration copyWith(Project project, Configuration configuration, boolean transitive) { - Configuration copy = project.getConfigurations().detachedConfiguration(collectDependencies(configuration).toArray(new Dependency[0])); - copy.setTransitive(transitive); - return copy; + return files; } /** @@ -97,7 +91,7 @@ public final class DependencyDownloader { * @param transitive true if transitive dependencies should be included, false otherwise * @return a mutable set containing the resolved files of the configuration */ - public static Set resolveFiles(Project project, Configuration configuration, boolean transitive) { - return copyWith(project, configuration, transitive).resolve(); + public static Set resolveFiles(Configuration configuration, boolean transitive) { + return resolve(configuration, transitive); } }