From 74babbead9df422f9332442f7b90a65825460df5 Mon Sep 17 00:00:00 2001 From: Enginecrafter77 Date: Wed, 1 Sep 2021 16:48:09 +0200 Subject: [PATCH] Fixed messy codechicken maven libraries The codechicken maven libraries are now properly downloading sources along with the dev jars. Those source jars are automatically attached to the development jars, so you can see them in eclipse. --- build.gradle | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/build.gradle b/build.gradle index 99654a81c..f500aed16 100644 --- a/build.gradle +++ b/build.gradle @@ -24,6 +24,32 @@ minecraft { runDir = "eclipse" } +// A little hack to fix codechicken's crazy maven structure (at least in 1.7.10) +eclipse.classpath.file.whenMerged { cp -> + // Find all codechicken source jars + def srcent = cp.entries.findAll { entry -> entry.path.contains("codechicken") && entry.path.endsWith("-src.jar") } + + // Remove them from classpath + cp.entries.removeAll srcent + + // Map the source entries to their dev counterparts based on basename + Map srcmap = new HashMap() + srcent.forEach { entry -> + def file = new File(entry.path) + srcmap.put(file.getName().replace("-src.jar", "-dev.jar"), file) + } + + // Create file reference factory + def fileref = new org.gradle.plugins.ide.eclipse.model.internal.FileReferenceFactory() + + // Find all codechicken development jars + cp.entries.findAll { entry -> entry.path.contains("codechicken") && entry.path.endsWith("-dev.jar") }.forEach { entry -> + File srcmapping = new File(entry.path) // Initialize the srcmapping from the dev jar path + srcmapping = srcmap.get(srcmapping.getName()) // Transform it using the sourcemap + entry.sourcePath = fileref.fromFile(srcmapping) // Set the source path + } +} + repositories { maven { name = 'ModMaven' @@ -33,8 +59,13 @@ repositories { dependencies { compile 'codechicken:CodeChickenCore:1.7.10-1.0.4.29:dev' + compileOnly 'codechicken:CodeChickenCore:1.7.10-1.0.4.29:src' + compile 'codechicken:CodeChickenLib:1.7.10-1.1.3.140:dev' + compileOnly 'codechicken:CodeChickenLib:1.7.10-1.1.3.140:src' + compile 'codechicken:NotEnoughItems:1.7.10-1.0.3.74:dev' + compileOnly 'codechicken:NotEnoughItems:1.7.10-1.0.3.74:src' } processResources {