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
This commit is contained in:
parent
13ae0ae263
commit
ba426c04fb
3 changed files with 7 additions and 4 deletions
|
@ -339,8 +339,8 @@ public class AbstractPlugin implements Plugin<Project> {
|
|||
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<Project, Set<Task>> taskMap = project.getAllTasks(true);
|
||||
|
|
|
@ -196,7 +196,10 @@ public class LoomGradleExtension {
|
|||
return recurseProjects((p) -> {
|
||||
List<Configuration> 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());
|
||||
|
||||
|
|
|
@ -78,7 +78,7 @@ public class RemapJarTask extends Jar {
|
|||
Set<File> 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();
|
||||
|
|
Loading…
Reference in a new issue