* Fix issue #243 by using ResolvedConfiguration and ResolvedDependency. * Fix AvoidStarImport build error.
This commit is contained in:
		
							parent
							
								
									4aa840adfe
								
							
						
					
					
						commit
						a6f7e2cbbb
					
				
					 1 changed files with 24 additions and 13 deletions
				
			
		|  | @ -32,6 +32,7 @@ import java.util.Collection; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.Locale; | import java.util.Locale; | ||||||
| import java.util.Set; | import java.util.Set; | ||||||
|  | import java.util.stream.Collectors; | ||||||
| import java.util.zip.ZipEntry; | import java.util.zip.ZipEntry; | ||||||
| 
 | 
 | ||||||
| import com.google.gson.Gson; | import com.google.gson.Gson; | ||||||
|  | @ -39,6 +40,13 @@ import com.google.gson.GsonBuilder; | ||||||
| import com.google.gson.JsonArray; | import com.google.gson.JsonArray; | ||||||
| import com.google.gson.JsonObject; | import com.google.gson.JsonObject; | ||||||
| import org.apache.commons.io.FileUtils; | import org.apache.commons.io.FileUtils; | ||||||
|  | import org.gradle.api.artifacts.ResolvedConfiguration; | ||||||
|  | import org.gradle.api.artifacts.Configuration; | ||||||
|  | import org.gradle.api.artifacts.ResolvedDependency; | ||||||
|  | import org.gradle.api.artifacts.Dependency; | ||||||
|  | import org.gradle.api.artifacts.ProjectDependency; | ||||||
|  | import org.gradle.api.artifacts.ResolvedArtifact; | ||||||
|  | import org.gradle.api.artifacts.DependencySet; | ||||||
| import org.zeroturnaround.zip.FileSource; | import org.zeroturnaround.zip.FileSource; | ||||||
| import org.zeroturnaround.zip.ZipEntrySource; | import org.zeroturnaround.zip.ZipEntrySource; | ||||||
| import org.zeroturnaround.zip.ZipUtil; | import org.zeroturnaround.zip.ZipUtil; | ||||||
|  | @ -46,10 +54,6 @@ import org.zeroturnaround.zip.transform.StringZipEntryTransformer; | ||||||
| import org.zeroturnaround.zip.transform.ZipEntryTransformerEntry; | import org.zeroturnaround.zip.transform.ZipEntryTransformerEntry; | ||||||
| import org.gradle.api.Project; | import org.gradle.api.Project; | ||||||
| import org.gradle.api.Task; | import org.gradle.api.Task; | ||||||
| import org.gradle.api.artifacts.Configuration; |  | ||||||
| import org.gradle.api.artifacts.Dependency; |  | ||||||
| import org.gradle.api.artifacts.DependencySet; |  | ||||||
| import org.gradle.api.artifacts.ProjectDependency; |  | ||||||
| import org.gradle.api.tasks.bundling.AbstractArchiveTask; | import org.gradle.api.tasks.bundling.AbstractArchiveTask; | ||||||
| 
 | 
 | ||||||
| import net.fabricmc.loom.LoomGradleExtension; | import net.fabricmc.loom.LoomGradleExtension; | ||||||
|  | @ -95,10 +99,10 @@ public class NestedJars { | ||||||
| 	private static List<File> getContainedJars(Project project) { | 	private static List<File> getContainedJars(Project project) { | ||||||
| 		List<File> fileList = new ArrayList<>(); | 		List<File> fileList = new ArrayList<>(); | ||||||
| 
 | 
 | ||||||
| 		Configuration configuration = project.getConfigurations().getByName(Constants.INCLUDE); | 		ResolvedConfiguration configuration = project.getConfigurations().getByName(Constants.INCLUDE).getResolvedConfiguration(); | ||||||
| 		DependencySet dependencies = configuration.getDependencies(); | 		Set<ResolvedDependency> dependencies = configuration.getFirstLevelModuleDependencies(); | ||||||
| 
 | 
 | ||||||
| 		for (Dependency dependency : dependencies) { | 		for (ResolvedDependency dependency : dependencies) { | ||||||
| 			if (dependency instanceof ProjectDependency) { | 			if (dependency instanceof ProjectDependency) { | ||||||
| 				ProjectDependency projectDependency = (ProjectDependency) dependency; | 				ProjectDependency projectDependency = (ProjectDependency) dependency; | ||||||
| 				Project dependencyProject = projectDependency.getDependencyProject(); | 				Project dependencyProject = projectDependency.getDependencyProject(); | ||||||
|  | @ -115,7 +119,14 @@ public class NestedJars { | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 			} else { | 			} else { | ||||||
| 				fileList.addAll(prepareForNesting(configuration.files(dependency), dependency, project)); | 				fileList.addAll(prepareForNesting( | ||||||
|  | 						dependency | ||||||
|  | 								.getModuleArtifacts() | ||||||
|  | 								.stream() | ||||||
|  | 								.map(ResolvedArtifact::getFile) | ||||||
|  | 								.collect(Collectors.toSet()), | ||||||
|  | 						dependency, project) | ||||||
|  | 				); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | @ -156,7 +167,7 @@ public class NestedJars { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	//This is a good place to do pre-nesting operations, such as adding a fabric.mod.json to a library | 	//This is a good place to do pre-nesting operations, such as adding a fabric.mod.json to a library | ||||||
| 	private static List<File> prepareForNesting(Set<File> files, Dependency dependency, Project project) { | 	private static List<File> prepareForNesting(Set<File> files, ResolvedDependency dependency, Project project) { | ||||||
| 		List<File> fileList = new ArrayList<>(); | 		List<File> fileList = new ArrayList<>(); | ||||||
| 
 | 
 | ||||||
| 		for (File file : files) { | 		for (File file : files) { | ||||||
|  | @ -193,12 +204,12 @@ public class NestedJars { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	//Generates a barebones mod for a dependency | 	//Generates a barebones mod for a dependency | ||||||
| 	private static String getMod(Dependency dependency) { | 	private static String getMod(ResolvedDependency dependency) { | ||||||
| 		JsonObject jsonObject = new JsonObject(); | 		JsonObject jsonObject = new JsonObject(); | ||||||
| 		jsonObject.addProperty("schemaVersion", 1); | 		jsonObject.addProperty("schemaVersion", 1); | ||||||
| 		jsonObject.addProperty("id", (dependency.getGroup() + "_" + dependency.getName()).replaceAll("\\.", "_").toLowerCase(Locale.ENGLISH)); | 		jsonObject.addProperty("id", (dependency.getModuleGroup() + "_" + dependency.getModuleName()).replaceAll("\\.", "_").toLowerCase(Locale.ENGLISH)); | ||||||
| 		jsonObject.addProperty("version", dependency.getVersion()); | 		jsonObject.addProperty("version", dependency.getModuleVersion()); | ||||||
| 		jsonObject.addProperty("name", dependency.getName()); | 		jsonObject.addProperty("name", dependency.getModuleName()); | ||||||
| 
 | 
 | ||||||
| 		return GSON.toJson(jsonObject); | 		return GSON.toJson(jsonObject); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue