Utiliser gradle pour gérer les dépendances



  • Sommaire

    Introduction

    Vous voulez créer un mod en utilisant l'énergie de Thermal Expansion ou/et d'IndustrialCraft 2, ou même l'API de ComputerCraft, voici comment gérer ça facilement.

    Pré-requis

    Code

    La première chose que nous allons faire c'est faire quelque chose de plus propre pour gérer les versions, voici 2 moyens :

    • Utiliser le fichier gradle.properties
    • Créer un nouveau fichier appelé gradle.properties
    • Nous allons ajouter nos valeurs sous la forme "clé=valeur"
    • Nous récupérerons ces valeurs avec ${clé} (en le mettant entre des guillemets doubles ("), les guillemets simples (') ne marchent pas)
    • Utiliser un ConfigSlurper
    • Créer un fichier du nom que vous voulez
    • Dans le build.gradle, ajoutez ceci :
      ext.configFile = file "<chemin vers votre fichier>" // configFile peut être ce que vous voulez tant que vous mettez le même plus basconfigFile.withReader { def properties = new Properties() properties.load(it) project.ext.config = new ConfigSlurper().parse properties // ici config (project.ext.config) peut être ce que vous voulez mais vous devrez récupérer vos valeurs avec ${<le nom>.clé}}
    • Les valeurs auront la même forme qu'au-dessus : clé=valeur
    • Nous récupérerons ces valeurs avec ${config.clé} (en le mettant entre des guillemets doubles ("), les guillemets simples (') ne marchent pas)
      Si vous le voulez vous pouvez aussi utiliser le format json en utilisant JsonSlurper.

    Ce fichier va nous servir à stocker toutes les versions des dépendances dedans.
    (Dans ce tutoriel j'utiliserai la première technique)

    Maintenant que l'on a un moyen de rassembler nos valeurs dans un fichier à part, je vous conseille très fortement de rajouter dans votre fichier de configuration (celui défini au-dessus) la version de minecraft ainsi que celle de forge, voici ce à quoi devrait ressembler vos fichiers :

    gradle.properties (fichier de configuration) :

    mc_version=1.7.10
    forge_version=10.13.4.1448-1.7.10
    

    build.gradle :

    buildscript {
        // Retiré pour plus de compréhension
    }
    
    apply plugin: 'forge'
    
    version = "1.0"
    group= "com.yourname.modid"
    archivesBaseName = "modid"
    
    minecraft {
        version = "${mc_version}-${forge_version}"
        runDir = "eclipse"
    }
    
    dependencies {
        // Retiré pour plus de compréhension
    }
    
    processResources
    {
        // Retiré pour plus de compréhension
    }
    

    Pour pouvoir télécharger automatiquement les versions des mods voulus, il va falloir dire à gradle où les télécharger, on peut lui donner 2 types de liens :
    Ces informations sont à rajouter dans le block "repositories", qui est à créer :

    buildscript {
        // Retiré pour plus de compréhension
    }
    
    apply plugin: 'forge'
    
    repositories {
        // C'est ici que l'on va rajouter nos repositories
    }
    
    version = "1.0"
    group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
    archivesBaseName = "modid"
    
    minecraft {
        // Retiré pour plus de compréhension
    }
    
    dependencies {
        // Retiré pour plus de compréhension
    }
    
    processResources
    {
        // Retiré pour plus de compréhension
    }
    
    

    Voici les repositories que je vais rajouter pour ce tutoriel :

    repositories {
        mavenCentral()
        maven { // le repo de chicken bones, celui-ci est obligatoire pour faire fonctionner les mods non-déobfusqués
            name 'CB Repo'
            url "http://chickenbones.net/maven/"
        }
        maven { // le repo de profMobius pour waila
            name 'ProfMobius Repo'
            url "http://mobiusstrip.eu/maven/"
        }
        maven { // celui d'IC2
            name 'Player'
            url "http://maven.ic2.player.to/"
        }
        maven { // celui de RX14 pour inventorytweaks, et pleins d'autres
            name 'RX14'
            url "http://mvn.rx14.co.uk/repo/"
        }
        maven {
            name = "Tterrag"
            url = "http://maven.tterrag.com/"
        }
        ivy { // nous sommes obligés de passer par un repo ivy car la CoFHTeam n'a pas de maven
            name "CoFHCore"
            artifactPattern 'http://addons-origin.cursecdn.com/files/2246/919/[module]-[revision].[ext]'
        }
        ivy {
            name "ThermalFoundation"
            artifactPattern 'http://addons-origin.cursecdn.com/files/2246/921/[module]-[revision].[ext]'
        }
        ivy {
            name "ThermalFoundation"
            artifactPattern 'http://addons-origin.cursecdn.com/files/2246/924/[module]-[revision].[ext]'
        }
        ivy {
            name "ThermalDynamics"
            artifactPattern 'http://addons-origin.cursecdn.com/files/2246/949/[module]-[revision].[ext]'
        }
        ivy {
            name "MineFactoryReloaded"
            artifactPattern 'http://addons-origin.cursecdn.com/files/2233/906/[module]-[revision].[ext]'
        }
        ivy { // BuildCraft est téléchargé depuis son site web
            name "BuildCraft"
            artifactPattern "http://www.mod-buildcraft.com/releases/BuildCraft/[revision]/[module]-[revision]-[classifier].[ext]"
        }
    }
    

    Si vous avez des fichiers à télécharger avec curse, il faut juste trouver les 2 nombres après "files/" en téléchargeant un fichier (le 1er dépend de l'auteur).

    Maintenant il ne reste plus qu'à dire à gradle quels mods il faut télécharger dans le block "dependencies" (celui en bas de votre fichier build.gradle) :

    dependencies {
        compile "codechicken:CodeChickenCore:${mc_version}-${ccc_version}:dev" // obligatoire pour faire fonctionner les autres mods
        compile "codechicken:CodeChickenLib:${mc_version}-${ccl_version}:dev" // pas obligatoire : si vous ne le mettez pas, le CCC va le télécharger dans le dossier mods
        compile "codechicken:ForgeMultipart:${mc_version}-${fmp_version}:dev"
        compile "codechicken:NotEnoughItems:${mc_version}-${nei_version}:dev"
        compile "mcp.mobius.waila:Waila:${waila_version}_${mc_version}"
        compile "cofh:CoFHCore:[${mc_version}]${cofhcore_version}"
        compile "cofh:ThermalFoundation:[${mc_version}]${tf_version}"
        compile "cofh:ThermalExpansion:[${mc_version}]${te_version}"
        compile "cofh:ThermalDynamics:[${mc_version}]${td_version}"
        compile "cofh:MineFactoryReloaded:[${mc_version}]${mfr_version}"
        compile "net.industrial-craft:industrialcraft-2:${ic2_version}-experimental:dev"
        compile "buildcraft:buildcraft:${bc_version}:dev"
        compile "com.enderio:EnderIO:${mc_version}-${enderio_version}:dev"
        compile "inventorytweaks:InventoryTweaks:${invtweaks_version}"
    }
    

    Voici comment se compose la fonction "compile" :
    compile "organisation:mod:version:classifier" (les guillemets doubles sont importants pour la raison spécifiée en haut)
    organisation : le plus souvent l'auteur, à voir en fonction du repo spécifié au-dessus
    mod : dépend aussi du repo
    version : à choisir parmi les versions disponibles sur le repo
    classifier : non obligatoire car, si le repo est fait correctement, le plugin eclipse (ou idea) téléchargera les sources avec et le CCC (CodeChickenCore) permet de jouer avec des mods non-déobfusqués.

    Et voilà ! Il ne vous reste plus qu'à mettre vos versions dans votre fichier de configuration et faire "gradlew eclipse" pour télécharger et jouer avec vos mods préférés.

    Voici ce que vous devriez avoir au final :
    build.gradle

    buildscript {
        repositories {
            mavenCentral()
            maven {
                name = "forge"
                url = "http://files.minecraftforge.net/maven"
            }
            maven {
                name = "sonatype"
                url = "https://oss.sonatype.org/content/repositories/snapshots/"
            }
        }
        dependencies {
            classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
        }
    }
    
    apply plugin: 'forge'
    
    repositories {
        mavenCentral()
        maven {
            name 'CB Repo'
            url "http://chickenbones.net/maven/"
        }
        maven {
            name 'ProfMobius Repo'
            url "http://mobiusstrip.eu/maven/"
        }
        maven {
            name 'Player'
            url "http://maven.ic2.player.to/"
        }
        maven {
            name 'RX14'
            url "http://mvn.rx14.co.uk/repo/"
        }
        maven {
            name = "Tterrag"
            url = "http://maven.tterrag.com/"
        }
        ivy {
            name "CoFHCore"
            artifactPattern 'http://addons-origin.cursecdn.com/files/2246/919/[module]-[revision].[ext]'
        }
        ivy {
            name "ThermalFoundation"
            artifactPattern 'http://addons-origin.cursecdn.com/files/2246/921/[module]-[revision].[ext]'
        }
        ivy {
            name "ThermalFoundation"
            artifactPattern 'http://addons-origin.cursecdn.com/files/2246/924/[module]-[revision].[ext]'
        }
        ivy {
            name "ThermalDynamics"
            artifactPattern 'http://addons-origin.cursecdn.com/files/2246/949/[module]-[revision].[ext]'
        }
        ivy {
            name "MineFactoryReloaded"
            artifactPattern 'http://addons-origin.cursecdn.com/files/2233/906/[module]-[revision].[ext]'
        }
        ivy {
            name "BuildCraft"
            artifactPattern "http://www.mod-buildcraft.com/releases/BuildCraft/[revision]/[module]-[revision]-[classifier].[ext]"
        }
    }
    
    version = "1.0"
    group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
    archivesBaseName = "modid"
    
    minecraft {
        version = "${mc_version}-${forge_version}"
        runDir = "eclipse"
    }
    
    dependencies {
        compile "codechicken:CodeChickenCore:${mc_version}-${ccc_version}:dev"
        compile "codechicken:CodeChickenLib:${mc_version}-${ccl_version}:dev"
        compile "codechicken:ForgeMultipart:${mc_version}-${fmp_version}:dev"
        compile "codechicken:NotEnoughItems:${mc_version}-${nei_version}:dev"
        compile "mcp.mobius.waila:Waila:${waila_version}_${mc_version}"
        compile "cofh:CoFHCore:[${mc_version}]${cofhcore_version}"
        compile "cofh:ThermalFoundation:[${mc_version}]${tf_version}"
        compile "cofh:ThermalExpansion:[${mc_version}]${te_version}"
        compile "cofh:ThermalDynamics:[${mc_version}]${td_version}"
        compile "cofh:MineFactoryReloaded:[${mc_version}]${mfr_version}"
        compile "net.industrial-craft:industrialcraft-2:${ic2_version}-experimental:dev"
        compile "buildcraft:buildcraft:${bc_version}:dev"
        compile "com.enderio:EnderIO:${mc_version}-${enderio_version}:dev"
        compile "inventorytweaks:InventoryTweaks:${invtweaks_version}"
    }
    
    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'
        }
    }
    

    gradle.properties (fichier de configuration) :

    mc_version=1.7.10
    forge_version=10.13.4.1448-1.7.10
    ccc_version=1.0.7.46
    ccl_version=1.1.3.138
    fmp_version=1.1.2.331
    nei_version=1.0.5.118
    waila_version=1.5.10
    cofhcore_version=3.0.3-303
    tf_version=1.2.0-102
    te_version=4.0.3B1-218
    td_version=1.1.0-161
    mfr_version=2.8.0-104
    ic2_version=2.2.717
    bc_version=7.1.9
    enderio_version=2.3.0.375_beta
    invtweaks_version=1.58
    

    Lors de votre premier lancement, le code chicken lib va vous demander de trouver le dossier conf, il se trouve dans GRADLE_HOME\caches\minecraft\net\minecraftforge\forge<votre version de forge>\unpacked\conf , GRADLE_HOME est par défaut C:\Users<utilisateur>.gradle .

    Bonus

    Pour modifier automatiquement la version de votre mod ainsi que d'autres paramètres, voici comment faire :

    minecraft {
        version = "${mc_version}-${forge_version}"
        runDir = "eclipse"
    
        replace "@VERSION@", project.version // ici on cherche le pattern @VERSION@ et on le remplace par la version du mod
        replaceIn "<votre classe principale>.java" // on le remplace uniquement dans la classe principale, en enlevant cette ligne le remplacement se fera dans tous les fichiers
    }
    

    Dans votre classe principale :

    @Mod(modid = <classe principale>.MODID, version = <classe principale>.VERSION)
    public class <classe principale>
    {
        public static final String MODID = "modid";
        public static final String VERSION = "@VERSION@";
    }
    

    Comment créer une version déobfusquée et un jar contenant les sources de votre mod (à placer à la fin de votre build.gradle) :

    task deobfJar(type: Jar) {
        from sourceSets.main.output
        classifier = 'dev'
    }
    
    task sourceJar(type: Jar) {
        from sourceSets.main.allSource
        classifier = 'sources' // il est conseillé de mettre "sources" au lieu de "src", sinon gradle ne le considérera pas comme les sources du mod
    }
    
    artifacts {
        archives deobfJar
        archives sourceJar
        archives jar
    }
    

    Si vous voulez que ces archives soient créées à chaque fois que vous faîtes un "gradlew build" :

    tasks.assemble.dependsOn('deobfJar', 'sourceJar')
    

    Résultat

    Crédits

    Rédaction :

    Correction :

    Creative Commons
    Ce tutoriel de SCAREX publié sur Minecraft Forge France est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International

    retourRetour vers le sommaire des tutoriels


  • Correcteurs

    Très bon tuto, certains mods ne sont pas Open-Source et ça peut être embêtant parfois.

    PS: "Si vous avez des fichiers à télécharger des fichiers avec curse" Je ne comprends pas vraiment ce que tu veux dire ^^.



  • Je ne vois pas le problème du fait qu'ils soient open-source ou non, les mods sont compilés en java et il est autorisé de les décompilés pour une utilisation personnelle. Aucun mod n'est décompilé d'ailleurs, il n'est pas interdit de jouer avec les mods.

    J'écris avec une seule main donc il m'arrive d'écrire n'importe quoi, je parlais des mods téléchargés avec Curse.


  • Correcteurs

    Je parle de l'evironnement de développement, en ne connaissant pas cette solution il fallait ajouter les sources aux siennes. Si le mod n'était pas open source, il fallait le decompiler et parfois ça donnait plus d'erreurs qu'autre chose.



  • Justement, avec le code chicken core, il n'y a pas besoin de décompiler les mods


  • Administrateurs

    Si un correcteur pouvait passer par ici ça serait génial.


  • Rédacteurs

    Tutoriel très utile, je viens de tester c'est magique



  • rien compris ::(


  • Administrateurs

    La seule chose qu'il faut modifier c'est le fichier build.gradle.
    Il y a pas grand chose de compliqué, si ?



  • Je pense que je vais faire une version vidéo pour expliquer plus en détails



  • Déja un tuto pour l'utiliser tout cours serait bien car certain plugins sponge n'ont pas de eclipse en dossier et je ne sais pas l'utilisé correctement gradlew donc si tu peux en profité (en tant que bonus par exemple je te ferais tout plein de bisous sur la fesse droite) xD


  • Administrateurs

    plugins sponge ?



  • Euh ce tutoriel concerne gradle, il n'utilise presque rien de ForgeGradle, je ne vois pas trop le rapport avec Sponge ni même ce que tu veux faire



  • Bonjour !
    J'essaye d'ajouter NEI a mon espace de travail afin de  creer un plugin NEI mais le problème est que ça fonctionne pas 😕 j'ai lancé le client grace a eclipse mais minecraft me dit qu'il y a seulement 4 mods actifs (mcp, fml, mcforge, IUtils(mon mod) )

    voici mon build.gradle :

    buildscript {
       repositories {
           mavenCentral()
           maven {
               name = "forge"
               url = "http://files.minecraftforge.net/maven"
           }
           maven {
               name = "sonatype"
               url = "https://oss.sonatype.org/content/repositories/snapshots/"
           }
    maven {
    name 'CB Repo'
    url "http://chickenbones.net/maven/"
    }
       }
       dependencies {
           classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
       }
    }
    
    apply plugin: 'forge'
    
    version = "1.0"
    group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
    archivesBaseName = "modid"
    
    minecraft {
       version = "1.7.10-10.13.4.1614-1.7.10"
       runDir = "eclipse"
    }
    
    dependencies {
       // 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
    compile "codechicken:CodeChickenCore:1.7.10-1.0.7.47:dev"
    compile "codechicken:NotEnoughItems:1.7.10-1.0.5.120:dev"
    }
    
    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'
       }
    }
    
    

    Aidez moi s'il vous plaît !



  • Je pense que non mais est-ce que les mods apparaissent dans les liste des librairies de ton projet dans eclipse ?

    Sinon essayes un gradle cleanEclipse puis gradle eclipse.



  • Problème a moitié réglé , maintenant mon client minecraft sur eclipse crash quand je le lance 😕

    voici les logs d'eclipse quand j'ai démarré mon client minecraft sur eclipse (je ne trouve pas le crash report):

    
    [14:21:50] [main/INFO] [GradleStart]: Extra: []
    [14:21:50] [main/INFO] [GradleStart]: Found and added coremod: codechicken.nei.asm.NEICorePlugin
    [14:21:50] [main/INFO] [GradleStart]: Found and added coremod: codechicken.core.launch.CodeChickenCorePlugin
    [14:21:50] [main/INFO] [GradleStart]: Running with arguments: [–userProperties, {}, --assetsDir, C:/Users/axel/.gradle/caches/minecraft/assets, --assetIndex, 1.7.10, --accessToken, {REDACTED}, --version, 1.7.10, --tweakClass, cpw.mods.fml.common.launcher.FMLTweaker, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker]
    [14:21:50] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLTweaker
    [14:21:50] [main/INFO] [LaunchWrapper]: Using primary tweak class name cpw.mods.fml.common.launcher.FMLTweaker
    [14:21:50] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker
    [14:21:50] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLTweaker
    [14:21:50] [main/INFO] [FML]: Forge Mod Loader version 7.99.40.1614 for Minecraft 1.7.10 loading
    [14:21:50] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.8.0_121, running on Windows 10:amd64:10.0, installed at C:\Program Files\Java\jre1.8.0_121
    [14:21:50] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
    [14:21:50] [main/INFO] [FML]: Found a command line coremod : codechicken.nei.asm.NEICorePlugin
    [14:21:50] [main/WARN] [FML]: The coremod codechicken.nei.asm.NEICorePlugin does not have a MCVersion annotation, it may cause issues with this version of Minecraft
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: java.lang.NoClassDefFoundError: codechicken/lib/asm/ASMInit
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at codechicken.nei.asm.NEICorePlugin.<init>(NEICorePlugin.java:18)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.reflect.Constructor.newInstance(Unknown Source)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.Class.newInstance(Unknown Source)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.relauncher.CoreModManager.loadCoreMod(CoreModManager.java:501)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.relauncher.CoreModManager.handleLaunch(CoreModManager.java:219)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.relauncher.FMLLaunchHandler.setupHome(FMLLaunchHandler.java:90)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.relauncher.FMLLaunchHandler.setupClient(FMLLaunchHandler.java:67)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.relauncher.FMLLaunchHandler.configureForClientLaunch(FMLLaunchHandler.java:34)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.common.launcher.FMLTweaker.injectIntoClassLoader(FMLTweaker.java:126)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.Launch.launch(Launch.java:115)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at GradleStart.main(Unknown Source)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: Caused by: java.lang.ClassNotFoundException: codechicken.lib.asm.ASMInit
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.loadClass(Unknown Source)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.loadClass(Unknown Source)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: … 16 more
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: Caused by: java.lang.NullPointerException
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: … 18 more
    [14:21:50] [main/ERROR] [FML]: An error occurred trying to configure the minecraft home at C:\Users\axel\Desktop\ModdingIUtils\eclipse\. for Forge Mod Loader
    java.lang.NoClassDefFoundError: codechicken/lib/asm/ASMInit
    at codechicken.nei.asm.NEICorePlugin.<init>(NEICorePlugin.java:18) ~[NotEnoughItems-1.7.10-1.0.5.120-dev.jar:?]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_121]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_121]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_121]
    at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_121]
    at java.lang.Class.newInstance(Unknown Source) ~[?:1.8.0_121]
    at cpw.mods.fml.relauncher.CoreModManager.loadCoreMod(CoreModManager.java:501) ~[forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar:?]
    at cpw.mods.fml.relauncher.CoreModManager.handleLaunch(CoreModManager.java:219) ~[forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar:?]
    at cpw.mods.fml.relauncher.FMLLaunchHandler.setupHome(FMLLaunchHandler.java:90) [forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar:?]
    at cpw.mods.fml.relauncher.FMLLaunchHandler.setupClient(FMLLaunchHandler.java:67) [forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar:?]
    at cpw.mods.fml.relauncher.FMLLaunchHandler.configureForClientLaunch(FMLLaunchHandler.java:34) [forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar:?]
    at cpw.mods.fml.common.launcher.FMLTweaker.injectIntoClassLoader(FMLTweaker.java:126) [forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar:?]
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:115) [launchwrapper-1.12.jar:?]
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
    at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
    at GradleStart.main(Unknown Source) [start/:?]
    Caused by: java.lang.ClassNotFoundException: codechicken.lib.asm.ASMInit
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.12.jar:?]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_121]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_121]
    … 16 more
    Caused by: java.lang.NullPointerException
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182) ~[launchwrapper-1.12.jar:?]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_121]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_121]
    … 16 more
    Exception in thread "main" [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: java.lang.NoClassDefFoundError: codechicken/lib/asm/ASMInit
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at codechicken.nei.asm.NEICorePlugin.<init>(NEICorePlugin.java:18)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.reflect.Constructor.newInstance(Unknown Source)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.Class.newInstance(Unknown Source)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.relauncher.CoreModManager.loadCoreMod(CoreModManager.java:501)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.relauncher.CoreModManager.handleLaunch(CoreModManager.java:219)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.relauncher.FMLLaunchHandler.setupHome(FMLLaunchHandler.java:90)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.relauncher.FMLLaunchHandler.setupClient(FMLLaunchHandler.java:67)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.relauncher.FMLLaunchHandler.configureForClientLaunch(FMLLaunchHandler.java:34)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.common.launcher.FMLTweaker.injectIntoClassLoader(FMLTweaker.java:126)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.Launch.launch(Launch.java:115)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at GradleStart.main(Unknown Source)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: Caused by: java.lang.ClassNotFoundException: codechicken.lib.asm.ASMInit
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.loadClass(Unknown Source)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.loadClass(Unknown Source)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: … 16 more
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: Caused by: java.lang.NullPointerException
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182)
    [14:21:50] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: … 18 more
    Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
    Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
    

    J'ai identifié le problème : il manque CCL , quelqu'un aurait le repo pour CCL 1.7.10 ?</init></init></init>



  • Désolé mais CCL n'est plus disponible sur le repo de codechickenbones en 1.7.10 donc soit tu essayes de le trouver sur le repo de quelqu'un d'autre soit tu te mets à jour (je te conseille cette dernière).



  • Pour tout les gens qui veulent un repo qui possède CCL pour 1.7.10 :

    repositories {
      mavenCentral()
      maven {
    name 'MCForge Repo'
    url "http://files.minecraftforge.net/maven/"
      }
    }
    

    et

    dependencies {
    compile "codechicken:CodeChickenLib:1.7.10-1.1.3.140:dev"
    }
    

    Voila !  😄



  • Ce message a été supprimé !