Jump to content

Trying to shade dependencies into jar


Userman

Recommended Posts

I have been trying to include an external library dependency to my mod by trying to shade it as written here: https://forgegradle.readthedocs.org/en/FG_1.2/user-guide/shading/

However when i add this to my build.gradle:

minecraft {
    srgExtra "PK:com/dependency my/mod/com/dependency"
}

 

and i do

./gradlew build

i get this error

FAILURE: Build failed with an exception.

* Where:
Build file '/home/minecraftProject/build.gradle' line: 56

* What went wrong:
A problem occurred evaluating root project 'minecraftProject'.
> Could not find method srgExtra() for arguments [PK:com/dependency my/mod/com/dependency] on root project 'minecraftProject'.

 

here's my build.gradle

 


// For those who want the bleeding edge
buildscript {
    repositories {
        jcenter()
        maven {
            name = "forge"
            url = "http://files.minecraftforge.net/maven"
        }
        
    }
    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT'
    }
    
}

apply plugin: 'net.minecraftforge.gradle.forge'


/*
// for people who want stable - not yet functional for MC 1.8.8 - we require the forgegradle 2.1 snapshot
plugins {
    id "net.minecraftforge.gradle.forge" version "2.0.2"
}
*/
version = "0.1"
group= "my.mod.package" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "ModName"
sourceCompatibility = 1.8 
targetCompatibility = 1.8

minecraft {
    version = "1.8.9-11.15.1.1722"
    runDir = "run"
    
    // the mappings can be changed at any time, and must be in the following format.
    // snapshot_YYYYMMDD   snapshot are built nightly.
    // stable_#            stables are built at the discretion of the MCP team.
    // Use non-default mappings at your own risk. they may not allways work.
    // simply re-run your setup task after changing the mappings to update your workspace.
    mappings = "stable_20"
    // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.

srgExtra "PK: com/dependency my/mod/com/dependency"
}
configurations {
    shade
    compile.extendsFrom shade
}
dependencies {
    shade fileTree(dir: 'libs', include: '*.jar')
}

jar {
    configurations.shade.each { dep ->
        from(project.zipTree(dep)) {
            exclude 'META-INF', 'META-INF/**'
        }
    }
}
processResources
{

    inputs.property "version", project.version
    inputs.property "mcversion", project.minecraft.version

    from(sourceSets.main.resources.srcDirs) {
        include 'mcmod.info' 
        expand 'version':project.version, 'mcversion':project.minecraft.version
    }
    from(sourceSets.main.resources.srcDirs) {
        exclude 'mcmod.info'
    }
    
}

 

 

how can i solve it? i've been searching all day but got no luck

Link to comment
Share on other sites

  • 11 months later...

Super duuuuper necro post, but for anyone who finds themselves here after trying the srgExtra line, it's been changed in newer versions of gradle (2.2-SNAPSHOT I know, but maybe even earlier).

Now instead of doing:

minecraft {
    ...
    srgExtra "PK: ..."
}

 

You have to do:

reobf {
    jar {
        extraLine "PK: ..."
    }
}

 

Relevant XKCD: https://xkcd.com/979/

  • Like 4
  • Haha 1
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.