mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
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.
95 lines
2.9 KiB
Groovy
95 lines
2.9 KiB
Groovy
buildscript {
|
|
repositories {
|
|
maven { url = 'https://files.minecraftforge.net/maven' }
|
|
maven { url = 'https://plugins.gradle.org/m2' }
|
|
mavenCentral()
|
|
}
|
|
dependencies {
|
|
classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
|
|
}
|
|
}
|
|
|
|
apply plugin: 'forge'
|
|
|
|
def jsonFile = file('./src/main/resources/mcmod.info')
|
|
def parsedJson = new groovy.json.JsonSlurper().parseText(jsonFile.text)
|
|
version = parsedJson.version
|
|
group = "com.hbm" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
|
|
archivesBaseName = "HBM-NTM"
|
|
|
|
sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8'
|
|
|
|
minecraft {
|
|
version = "1.7.10-10.13.4.1558-1.7.10"
|
|
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<String, File> srcmap = new HashMap<String, File>()
|
|
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'
|
|
url = 'https://modmaven.dev'
|
|
}
|
|
}
|
|
|
|
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 {
|
|
// this will ensure that this task is redone when the versions change.
|
|
inputs.property "version", project.version
|
|
inputs.property "mcversion", project.minecraft.version
|
|
|
|
// replace stuff in mcmod.info, nothing else
|
|
from(sourceSets.main.resources.srcDirs) {
|
|
include 'mcmod.info'
|
|
|
|
// replace version and mcversion
|
|
expand 'version':project.version, 'mcversion':project.minecraft.version
|
|
}
|
|
|
|
// copy everything else, thats not the mcmod.info
|
|
from(sourceSets.main.resources.srcDirs) {
|
|
exclude 'mcmod.info'
|
|
}
|
|
}
|
|
|
|
task version {
|
|
doFirst {
|
|
println project.version
|
|
}
|
|
}
|