User Tools

Site Tools


tutorial:migratemappings

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revisionBoth sides next revision
tutorial:migratemappings [2019/05/10 11:49] – created asietutorial:migratemappings [2022/12/22 16:20] – change versions url to /develop to keep it consistent basil4088
Line 1: Line 1:
 ====== Updating Yarn mappings in a Java codebase ====== ====== Updating Yarn mappings in a Java codebase ======
  
-===== The Hacky Way =====+Loom allows semi-automatic updating of the mappings used in a Java codebase. Due to frequent changes in Yarn, this can be a useful tool for keeping a codebase up-to-date with the newest changes.
  
-==== Requirements ====+**Note:** This automated process currently does not handle Mixins or reflection, instances of these will need to be manually updated.
  
-  * Fabric-Loom 0.2.2 or above +===== Loom 0.2.6 and above =====
-  * A Java codebase - Kotlin and Scala will not, currently, do. +
-  * Some assembly required+
  
-==== Instructions ====+Say you want to migrate from 1.16.5 yarn to 1.17.1 yarn. 
 + 
 +  - Go [[https://fabricmc.net/develop|here]], select the version to migrate to, and copy the Gradle command under "Mappings Migration", for example ''gradlew migrateMappings %%--%%mappings %%"%%1.17.1+build.40%%"%%'' DO NOT modify your gradle.properties or build.gradle yet.    
 +  - Run the command in the root of your Gradle project. 
 +  - Your migrated sources will appear in ''remappedSrc''. Verify that the migration produced valid migrated code. 
 +  - Copy the sources from ''remappedSrc'' to the original folder. Keep the original sources backed up just in case. 
 +  - Update your gradle.properties file according to the instructions in [[https://fabricmc.net/develop|the first site]]. 
 +  - Refresh the Gradle project in your IDE. 
 +  - Check and update any Mixin targets that may be outdated. 
 + 
 +If you want to go from Mojang's official mappings, AKA mojmap, to yarn, make sure your mappings in ''build.gradle'' is set to ''loom.officialMojangMappings()'' before running ''migrateMappings'' 
 + 
 +=== Additional customization ===  
 +  * Specify from where to take your Java files with ''%%--%%input path/to/source''. Default: ''src/main/java''
 +  * Specify where to output the remapped source with ''%%--%%output path/to/output''. Default: 'remappedSrc'. You can use ''src/main/java'' here to avoid having to copy the remapped classes, but make sure you have a backup. 
 +  * Specify a custom place to retrieve the mappings from with ''%%--%%mappings some_group:some_artifact:some_version:some_qualifier''. Default: ''net.fabricmc:yarn:<version-you-inputted>:v2''. Use ''net.minecraft:mappings:<minecraft-version>'' to migrate to official Mojang mappings. 
 + 
 +=== Reporting issues === 
 +Loom uses [[https://github.com/CadixDev/Mercury|Mercury]] to remap Java source code, for problems with remapping please report issues to their [[https://github.com/CadixDev/Mercury/issues|issue tracker]], or discuss it through their communications channel (irc.esper.net #cadix). 
 + 
 +===== Loom 0.2.2-0.2.5 ===== 
 + 
 +Some assembly required.
  
   - Figure out your target mappings version. For example, "net.fabricmc:yarn:1.14.1 Pre-Release 2+build.2".   - Figure out your target mappings version. For example, "net.fabricmc:yarn:1.14.1 Pre-Release 2+build.2".
Line 16: Line 36:
     * "targetMappingsArtifact" refers to the target mappings version. It is imperative that the build.gradle be set to the current mappings version of the mod when running this command!     * "targetMappingsArtifact" refers to the target mappings version. It is imperative that the build.gradle be set to the current mappings version of the mod when running this command!
     * "inputDir" is the input directory, containing Java source code,     * "inputDir" is the input directory, containing Java source code,
-    * "outputDir" is the output directory. It will be created if it is missing.  +    * "outputDir" is the output directory. It will be created if it is missing. 
-  - Copy the remapped source code to the input directory, if everything's fine,+  - Copy the remapped source code to the input directory, if everything's fine.
   - Hope for the best.   - Hope for the best.
  
-This should work across Minecraft versions as well, provided we haven't massively broken Intermediaries or done something equally silly (akamost of the time).+//NoteYou may need to specify the full paths in quotes, try this if you get file not found issues.//
  
-===== The Non-Hacky Way =====+This should work across Minecraft versions as well, provided we haven't massively broken Intermediaries or done something equally silly (aka: most of the time).
  
-Coming soon! (Hopefully.) 
tutorial/migratemappings.txt · Last modified: 2022/12/22 16:23 by basil4088