### What is it This task will migrate (remap) the project's source files to a new mapping version. ### Warning: Running this task with edit your project's source files. It does **NOT** make a backup. It is highly recommened that you commit any pending changes before doing this. (If you are not using version control, you should be.) ### Before running the command #### Source must be compilable This process uses Srg2Source to remap the project's source files. Therefore, your project must be compilable for this process to work. #### Adding other source sets By default, the `updateMappings` task will only update the source directories in the projects `main` source set. If you use additioanl source sets in your project, then you must add them to the remapping tasks. Below is an example adding an `api` source set. Note: The property check is important as these tasks do not exists unless it is specified. ```groovy if (project.hasProperty('UPDATE_MAPPINGS')) { extractRangeMap { sources sourceSets.api.java.srcDirs } applyRangeMap { sources sourceSets.api.java.srcDirs } sourceSets.api.java.srcDirs.each { extractMappedNew.addTarget it } } ``` ### The command This command should be run **before** you update the mapping version in you build file. `./gradlew -PUPDATE_MAPPINGS="new mapping version" -PUPDATE_MAPPINGS_CHANNEL="snapshot" updateMappings` Note that the `UPDATE_MAPPINGS_CHANNEL` property is not required and will default to `snapshot`. ### Known issues - Extra imports: Srg2Source is not the greatest with inner classes and will sometimes add extra imports for them.