From ba426c04fb66506341a6b3d45175412b169fb687 Mon Sep 17 00:00:00 2001 From: zml Date: Tue, 22 Oct 2019 12:29:25 -0700 Subject: [PATCH] Fix issues involving projects with modules that contain no java classes (#135) Dependencies on a compileClasspath configuration, and encountering nonexistant paths in the classpath prevented remapping from completing successfully. Additionally, adds the output of remapJar as an artifact before the task executes to resolve a conflict with the signing plugin --- src/main/java/net/fabricmc/loom/AbstractPlugin.java | 4 ++-- src/main/java/net/fabricmc/loom/LoomGradleExtension.java | 5 ++++- src/main/java/net/fabricmc/loom/task/RemapJarTask.java | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/AbstractPlugin.java b/src/main/java/net/fabricmc/loom/AbstractPlugin.java index c14eb8d..bafce6e 100644 --- a/src/main/java/net/fabricmc/loom/AbstractPlugin.java +++ b/src/main/java/net/fabricmc/loom/AbstractPlugin.java @@ -339,8 +339,8 @@ public class AbstractPlugin implements Plugin { extension.addUnmappedMod(jarTask.getArchivePath().toPath()); remapJarTask.getAddNestedDependencies().set(true); - remapJarTask.doLast(task -> project1.getArtifacts().add("archives", remapJarTask.getArchivePath())); - remapJarTask.dependsOn(project1.getTasks().getByName("jar")); + project1.getArtifacts().add("archives", remapJarTask); + remapJarTask.dependsOn(jarTask); project1.getTasks().getByName("build").dependsOn(remapJarTask); Map> taskMap = project.getAllTasks(true); diff --git a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java index 31dcd59..eefd48f 100644 --- a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java +++ b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java @@ -196,7 +196,10 @@ public class LoomGradleExtension { return recurseProjects((p) -> { List configs = new ArrayList<>(); // check compile classpath first - configs.add(p.getConfigurations().getByName("compileClasspath")); + Configuration possibleCompileClasspath = p.getConfigurations().findByName("compileClasspath"); + if (possibleCompileClasspath != null) { + configs.add(possibleCompileClasspath); + } // failing that, buildscript configs.addAll(p.getBuildscript().getConfigurations()); diff --git a/src/main/java/net/fabricmc/loom/task/RemapJarTask.java b/src/main/java/net/fabricmc/loom/task/RemapJarTask.java index 7a7bfcb..aa4f1a0 100644 --- a/src/main/java/net/fabricmc/loom/task/RemapJarTask.java +++ b/src/main/java/net/fabricmc/loom/task/RemapJarTask.java @@ -78,7 +78,7 @@ public class RemapJarTask extends Jar { Set classpathFiles = new LinkedHashSet<>( project.getConfigurations().getByName("compileClasspath").getFiles() ); - Path[] classpath = classpathFiles.stream().map(File::toPath).filter((p) -> !input.equals(p)).toArray(Path[]::new); + Path[] classpath = classpathFiles.stream().map(File::toPath).filter((p) -> !input.equals(p) && Files.exists(p)).toArray(Path[]::new); File mixinMapFile = mappingsProvider.MAPPINGS_MIXIN_EXPORT; Path mixinMapPath = mixinMapFile.toPath();