16 juil. 2016, 18:20

Sommaire

Introduction

Vous souhaitez utiliser la nouvelle fonction de forge pour récupérer les versions de votre mod ? Voici comment faire grâce au plugin ForgeChangelogGradlePlugin.

Pré-requis

  • Comprendre globalement l’utilité de gradle et son fonctionnement

Code

build.gradle :

Première chose il va vous falloir ajouter le plugin, ajoutez ceci au début de votre build.gradle (après le bloc buildscript par exemple mais pas après) :

plugins {
    id "fr.scarex.fcgp" version "1.0.4"
}

Ensuite il va vous falloir définir vos paramètres dans le bloc “forgeChangelog” comme ceci :

forgeChangelog {
    clé = valeur
}

Voici une liste de tous les paramètres disponibles avec leur valeur par défaut :

String changelogSource = "git" // la source utilisée pour générer le changelog, valeur possibles : git, jenkins(:url) (ici l'url n'est pas obligatoire si vous l'avez mis comme source autre part)

TreeMap<String, TreeMap<String, String>> customVersions // Une liste de versions que vous pouvez rentrer manuellement

String homepage = null // le lien pour télécharger votre mod qui apparaîtra dans le json

Pattern versionPattern = Pattern.compile("(?i)(?<artifactName>[a-zA-Z_-]*)(?:\\-)?(?<version>(?<mcversion>(?:\\d+)(?:\\.\\d+)*)(?:\\-)((?:\\d+)(?:\\.\\d+)*))(?:\\-(?<classifier>[a-zA-Z1-9]+))?") // le pattern afin de déterminer la version de minecraft, par défaut c'est celui conseillé par forge. Il doit OBLIGATOIREMENT contenir le groupe mcversion et version

String versioningSource = "git" // La source utilisée pour générer la liste des versions, valeurs possibles : git, jenkins(:url) (ici l'url n'est pas obligatoire si vous l'avez mis comme source autre part), maven:url

String promosSource = "" // La source utilisée pour générer les dernières versions ainsi que celles recommandées, valeurs possibles : jenkins(:url) (ici l'url n'est pas obligatoire si vous l'avez mis comme source autre part)

File customGitRepo = null // Spécifiez l'emplacement du repo git s'il est différent de l'endroit de votre projet

TreeMap<String, String> promos = new TreeMap<>(Collections.reverseOrded()) // une liste des promos à ajouter manuellement

File destination = null // VALEUR OBLIGATOIRE ! Spécifie l'emplacement du json à générer

boolean prettyPrinting = true // Spécifie si le json doit être rendu de façon claire

boolean generateLatestsFromVersions = true // indique s'il faut générer les dernières versions depuis les versions données

boolean latestsAsRecommended = true // indique s'il faut mettre les dernières versions comme recommandées

Donc par exemple pour un repo git, vous pouvez faire ceci :

forgeChangelog {
    destination = file("changelog-${archivesBaseName}.json")
    homepage = "http://github.com/User/Repo/releases"
}

Pour un repo jenkins :

forgeChangelog {
    destination = file("changelog-${archivesBaseName}.json")
    generateLatestsFromVersions = false
    changelogSource = "jenkins"
    versioningSource = "jenkins:lienVersVotreJenkins"
    promosSource = "jenkins"
}

Résultat

Pour mon repo SCLib :

{
    "homepage": "http://github.com/SCAREXgaming/SCLib/releases",
    "promos": {
    "1.7.10-recommended": "1.7.10-1.2.2",
    "1.7.10-latest": "1.7.10-1.2.2"
    },
    "1.7.10": {
    "1.7.10-1.2.2": "SCAREX : 1.2.2 : - added some CoFH mods for testing - added some source files - fixed bug : the configurator from Mekanism didn\u0027t work\nSCAREX : Renaming + fixed bug",
    "1.7.10-1.2.1": "SCAREX : Added test files\nSCAREX : Added Mekanism Testing things with jitpack.io\nSCAREX : Testing : added optional parameter when publishing\nSCAREX : Testing with install task\nSCAREX : New test",
    "1.7.10-1.2.0": "SCAREX : -Added blocks and items lists -Added energy blocks -Added abstract item\nSCAREX : Modified version",
    "1.7.10-1.1.2": "SCAREX : Nope",
    "1.7.10-1.1.1": "SCAREX : Testing things of jitpack.io",
    "1.7.10-1.1.0": "SCAREX : Added changelog again\nSCAREX : Finally added all the plugins I wanted",
    "1.7.10-1.0.5": "SCAREX : Trying to add changelog maker",
    "1.7.10-1.0.4": "SCAREX : ...\nSCAREX : ..\nSCAREX : Changed version",
    "1.7.10-1.0.3": "SCAREX : still testing\nSCAREX : always testing\nSCAREX : And again\nSCAREX : no comment",
    "1.7.10-1.0.1": "SCAREX : Added gradle wrapper",
    "1.7.10-1.0.0": "SCAREX : First commit\nSCAREX : Modified changelog"
    }
}

Pour le jenkins de FFMT-libs :

{
    "homepage": "http://ci.mcnanotech.fr/job/FFMT-libs/",
    "promos": {
    "1.10.2-recommended": "1.7.0.176",
    "1.10.2-latest": "1.7.0.176"
    },
    "1.9.4": {
    "1.6.4.175": "Robin : bump version number for mc 1.9.4\n",
    "1.6.3.174": ""
    },
    "1.9": {
    "1.6.3.173": "Superloup10 : Update Forge, mappings, gradle - add gradle.properties\n",
    "1.6.3.172": "Superloup10 : Fix missing mapping\n",
    "1.6.3.170": "baumeyerkevin : Doc\n",
    "1.6.3.169": "baumeyerkevin : Fix BlockSittable\n",
    "1.6.3.168": "Superloup10 : Add registerBlock\n",
    "1.6.3.167": "baumeyerkevin : Update build.gradle\n",
    "1.6.3.166": "baumeyerkevin : Reverse last\n",
    "1.6.3.165": "baumeyerkevin : New option allowing to disable hats\n",
    "1.6.3.164": "baumeyerkevin : Update FFMTRegistry\n",
    "1.6.3.163": "baumeyerkevin : Update build\n\nbaumeyerkevin : Update to forge 1805\n",
    "1.6.3.162": "baumeyerkevin : Fix build\n",
    "1.6.3.160": ""
    },
    "1.8.9": {
    "1.6.2.159": "baumeyerkevin : Things\n",
    "1.6.2.158": "baumeyerkevin : Imporvement of 3D texts\n",
    "1.6.2.157": "baumeyerkevin : Fix encoding\n",
    "1.6.2.155": "baumeyerkevin : Update to mc 1.8.9, forge 1669, map 20160102\n"
    },
    "1.8.8": {
    "1.6.2.153": "Robin : fix drawTexture function\n",
    "1.6.2.152": "Robin : fix last commit\n",
    "1.6.2.150": "baumeyerkevin : Keep hovering text in screen\n",
    "1.6.2.149": "baumeyerkevin : Update to mc\u0026forge 1.8.8\n"
    },
    "1.8": {
    "1.6.1.148": "baumeyerkevin : Improve slider\n",
    "1.6.1.147": "Robin : java doc, again\n",
    "1.6.1.146": "Robin : fix some other javadoc error\n",
    "1.6.1.145": "Robin : fix some javadoc error\n",
    "1.6.1.144": "Robin : update gradle\n",
    "1.6.0.142": "baumeyerkevin : Change things\n",
    "1.6.0.141": "baumeyerkevin : New GUI\n",
    "1.6.0.140": "baumeyerkevin : Fix texture\n",
    "1.6.0.139": "baumeyerkevin : New gui system\n",
    "1.6.0.138": "baumeyerkevin : things\n",
    "1.6.0.137": "baumeyerkevin : Little fix\n\nbaumeyerkevin : Little fix\n",
    "1.6.0.136": "Robin : remove code about NHG\n",
    "1.6.0.135": "Robin : update forge, avoid to use reflexion for layer\n",
    "1.6.0.134": "jglrxavpok : Fixed crash on servers related to hats\n",
    "1.6.0.133": "",
    "1.6.0.132": "Robin : fix javadoc\n",
    "1.6.0.130": "",
    "1.6.0.129": "",
    "1.5.0.128": "",
    "1.5.0.127": "",
    "1.5.0.126": "",
    "1.5.0.125": "",
    "1.5.0.120": "",
    "1.5.0.119": "",
    "1.5.0.118": ""
    },
    "1.7.2": {
    "1.4.2.84": "",
    "1.4.2.83": "",
    "1.4.2.82": "",
    "1.4.2.81": "",
    "1.4.2.80": "",
    "1.4.2.79": "",
    "1.4.1.76": "",
    "1.4.1.75": "",
    "1.4.0.72": "",
    "1.4.0.71": "",
    "1.4.0.70": "",
    "1.4.0.69": "",
    "1.4.0.68": ""
    },
    "1.7.10": {
    "1.5.0.113": "",
    "1.5.0.112": "",
    "1.5.0.111": "",
    "1.5.0.110": "",
    "1.5.0.105": "",
    "1.5.0.103": "",
    "1.5.0.100": "",
    "1.4.4.99": "",
    "1.4.4.98": "",
    "1.4.4.97": "",
    "1.4.4.96": "",
    "1.4.4.95": "",
    "1.4.4.94": "",
    "1.4.4.93": "",
    "1.4.3.91": "",
    "1.4.3.90": "",
    "1.4.3.89": "",
    "1.4.3.88": "",
    "1.4.3.87": ""
    },
    "1.10.2": {
    "1.7.0.176": "Superloup10 : Bump version, forge version and mappings\n"
    }
}

Crédits

Rédaction :

  • SCAREX

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

retourSommaire des tutoriels