Allow setting the RemapJarTask classpath. Closes #307
This commit is contained in:
		
							parent
							
								
									36954809ec
								
							
						
					
					
						commit
						e20993daf8
					
				
					 1 changed files with 27 additions and 16 deletions
				
			
		|  | @ -29,11 +29,10 @@ import java.io.FileNotFoundException; | |||
| import java.io.IOException; | ||||
| import java.nio.file.Files; | ||||
| import java.nio.file.Path; | ||||
| import java.util.LinkedHashSet; | ||||
| import java.util.Set; | ||||
| 
 | ||||
| import com.google.common.base.Preconditions; | ||||
| import org.gradle.api.Project; | ||||
| import org.gradle.api.file.FileCollection; | ||||
| import org.gradle.api.file.RegularFileProperty; | ||||
| import org.gradle.api.provider.Property; | ||||
| import org.gradle.api.tasks.Input; | ||||
|  | @ -61,6 +60,7 @@ public class RemapJarTask extends Jar { | |||
| 	private final Property<Boolean> addNestedDependencies; | ||||
| 	private final Property<Boolean> remapAccessWidener; | ||||
| 	public JarRemapper jarRemapper; | ||||
| 	private FileCollection classpath; | ||||
| 
 | ||||
| 	public RemapJarTask() { | ||||
| 		super(); | ||||
|  | @ -95,10 +95,7 @@ public class RemapJarTask extends Jar { | |||
| 		String fromM = "named"; | ||||
| 		String toM = "intermediary"; | ||||
| 
 | ||||
| 		Set<File> classpathFiles = new LinkedHashSet<>( | ||||
| 						project.getConfigurations().getByName("compileClasspath").getFiles() | ||||
| 		); | ||||
| 		Path[] classpath = classpathFiles.stream().map(File::toPath).filter((p) -> !input.equals(p) && Files.exists(p)).toArray(Path[]::new); | ||||
| 		Path[] classpath = getRemapClasspath(); | ||||
| 
 | ||||
| 		TinyRemapper.Builder remapperBuilder = TinyRemapper.newRemapper(); | ||||
| 
 | ||||
|  | @ -173,16 +170,7 @@ public class RemapJarTask extends Jar { | |||
| 		String toM = "intermediary"; | ||||
| 
 | ||||
| 		if (extension.isRootProject()) { | ||||
| 			Set<File> classpathFiles = new LinkedHashSet<>( | ||||
| 					project.getConfigurations().getByName("compileClasspath").getFiles() | ||||
| 			); | ||||
| 
 | ||||
| 			Path[] classpath = classpathFiles.stream() | ||||
| 					.map(File::toPath) | ||||
| 					.filter(Files::exists) | ||||
| 					.toArray(Path[]::new); | ||||
| 
 | ||||
| 			jarRemapper.addToClasspath(classpath); | ||||
| 			jarRemapper.addToClasspath(getRemapClasspath()); | ||||
| 
 | ||||
| 			jarRemapper.addMappings(TinyRemapperMappingsHelper.create(mappingsProvider.getMappings(), fromM, toM, false)); | ||||
| 		} | ||||
|  | @ -235,6 +223,19 @@ public class RemapJarTask extends Jar { | |||
| 				}); | ||||
| 	} | ||||
| 
 | ||||
| 	private Path[] getRemapClasspath() { | ||||
| 		FileCollection files = this.classpath; | ||||
| 
 | ||||
| 		if (files == null) { | ||||
| 			files = getProject().getConfigurations().getByName("compileClasspath"); | ||||
| 		} | ||||
| 
 | ||||
| 		return files.getFiles().stream() | ||||
| 				.map(File::toPath) | ||||
| 				.filter(Files::exists) | ||||
| 				.toArray(Path[]::new); | ||||
| 	} | ||||
| 
 | ||||
| 	@InputFile | ||||
| 	public RegularFileProperty getInput() { | ||||
| 		return input; | ||||
|  | @ -249,4 +250,14 @@ public class RemapJarTask extends Jar { | |||
| 	public Property<Boolean> getRemapAccessWidener() { | ||||
| 		return remapAccessWidener; | ||||
| 	} | ||||
| 
 | ||||
| 	public RemapJarTask classpath(FileCollection collection) { | ||||
| 		if (this.classpath == null) { | ||||
| 			this.classpath = collection; | ||||
| 		} else { | ||||
| 			this.classpath = this.classpath.plus(collection); | ||||
| 		} | ||||
| 
 | ||||
| 		return this; | ||||
| 	} | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue