Jump to content

[Dependencies] Add Github Mod to deps


Recommended Posts

I wondered if there was an easy way to add any gradle-like github mod to the dependecies of my mod. Let's say there is a github-repo at /author/repo, is there an easy way I can tell gradlew to always keep track of that repo/a specific branch/tag/release that gets cloned and added as a dependency to my mod?

Doing it manually is really tedious sometimes... (downloading, building, copying into ./lib/, ...)

Link to comment
Share on other sites

Status: Tested, and it gives me errors, specifically telling me that some .pom wasn't found on files.minecraft.net/.../....pom. Either I'm doing something wrong or it doesn't work straight forward.

Can someone give/link an example that uses this already?



* What went wrong:

Execution failed for task ':MHFC:initGitDependencies'.

> org.eclipse.jgit.api.errors.RefAlreadyExistsException: Ref master already exists


* Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.





buildscript {
    repositories {
        maven {
            name = "forge"
            url = "http://files.minecraftforge.net/maven"
        maven {
            name = "sonatype"
            url = "https://oss.sonatype.org/content/repositories/snapshots/"
    dependencies {
        classpath 'org.batcha.gradle.plugins:git-dependencies:0.2'
        classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
apply plugin: 'forge'
apply plugin: 'eclipse'
apply plugin: 'git-dependencies'

version = "1.0"
group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "modid"

sourceCompatibility = 1.7
targetCompatibility = 1.7

minecraft {
    version = "1.7.10-"
    runDir = "eclipse/assets"

dependencies {
    // initGitDependencies    -> clones locally = checkout
    // refreshGitDependencies -> refresh        = pull

    compile('com.github.worldsender.mcanm:mcanm:0.0.101a_1710').ext.git = 'https://github.com/WorldSEnder/MCAnm'
    // you may put jars on which you depend on in ./libs
    // or you may define them like so..
    //compile "some.group:artifact:version:classifier"
    //compile "some.group:artifact:version"

    // real examples
    //compile 'com.mod-buildcraft:buildcraft:6.0.8:dev'  // adds buildcraft to the dev env
    //compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env

    // for more info...
    // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
    // http://www.gradle.org/docs/current/userguide/dependency_management.html


    // 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'

Link to comment
Share on other sites

Doesn't seem to work because that doesn't even offer the options (only task added is "resolveGitDependencies")...


Another (related) question: How can I apply a local plugin? Currently I am downloading it from maven but I think I found an alternative branch that resolves the issue but that isn't up at maven, so I would download it and build it manually and then apply the built file locally... how can I do this?

Link to comment
Share on other sites

You'll probably need to clone the branch and build it, then, to apply locally:

buildscript {
    //other Forge stuff

    dependencies {
        classpath fileTree(dir: '/path/to/folder/that/contains/the/jar',
            includes: ['local-built-git-dependencies-plugin.jar'])
apply plugin 'forge'
apply plugin 'git-dependencies'

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...

Important Information

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