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
dev/0.11
zml 2019-10-22 12:29:25 -07:00 committed by Mark J
parent 13ae0ae263
commit ba426c04fb
3 changed files with 7 additions and 4 deletions

View File

@ -339,8 +339,8 @@ public class AbstractPlugin implements Plugin<Project> {
extension.addUnmappedMod(jarTask.getArchivePath().toPath()); extension.addUnmappedMod(jarTask.getArchivePath().toPath());
remapJarTask.getAddNestedDependencies().set(true); remapJarTask.getAddNestedDependencies().set(true);
remapJarTask.doLast(task -> project1.getArtifacts().add("archives", remapJarTask.getArchivePath())); project1.getArtifacts().add("archives", remapJarTask);
remapJarTask.dependsOn(project1.getTasks().getByName("jar")); remapJarTask.dependsOn(jarTask);
project1.getTasks().getByName("build").dependsOn(remapJarTask); project1.getTasks().getByName("build").dependsOn(remapJarTask);
Map<Project, Set<Task>> taskMap = project.getAllTasks(true); Map<Project, Set<Task>> taskMap = project.getAllTasks(true);

View File

@ -196,7 +196,10 @@ public class LoomGradleExtension {
return recurseProjects((p) -> { return recurseProjects((p) -> {
List<Configuration> configs = new ArrayList<>(); List<Configuration> configs = new ArrayList<>();
// check compile classpath first // 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 // failing that, buildscript
configs.addAll(p.getBuildscript().getConfigurations()); configs.addAll(p.getBuildscript().getConfigurations());

View File

@ -78,7 +78,7 @@ public class RemapJarTask extends Jar {
Set<File> classpathFiles = new LinkedHashSet<>( Set<File> classpathFiles = new LinkedHashSet<>(
project.getConfigurations().getByName("compileClasspath").getFiles() 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; File mixinMapFile = mappingsProvider.MAPPINGS_MIXIN_EXPORT;
Path mixinMapPath = mixinMapFile.toPath(); Path mixinMapPath = mixinMapFile.toPath();