zh_cn:tutorial:migratemappings
Table of Contents
更新 Java 代码库中的 Yarn 映射
Loom 能够半自动地升级 Java 代码库中使用的映射。因为 Yarn 经常改动,所以这个工具对于令代码库与最新的改动同步更新来讲非常有用。
注意:Mixin 和反射目前不能自动处理 ,需要手动更新。
Loom 0.2.6 及更高版本
假如你想要从 1.14.4 迁移到 19w46b。
- 在你 gradle 项目的根目录下,运行
gradlew migrateMappings --mappings "19w46b+build.1"
- 迁移之后的源代码会出现在
remappedSrc
,检验一下迁移生成的代码是否有效。 - 把
remappedSrc
中的源代码复制到原本的文件夹。记得先备份原本的源代码,以防万一。 - 根据这个网站的说明更新 gradle.properties 文件。
- 在 IDE 里重新加载 gradle 工程。
- 检查并且更新那些可能已经失效的 Mixin 目标。
可选的自定义参数
- 用
--input path/to/source
指定从哪里获取 Java 源文件,默认是src/main/java
。 - 用
--output path/to/output
指定重新映射的源代码输出到哪,默认是remappedSrc
。 - 用
--mappings some_group:some_artifact:some_version:some_qualifier
自定义获取映射的位置,默认是net.fabricmc:yarn:<version-you-inputted>:v2
。使用net.minecraft:mappings:<minecraft-version>
来迁移到 Mojang 官方混淆映射。
报告问题
Loom 0.2.2 - 0.2.5
需要一点 assembly。
- 搞清你想要迁移到的映射版本,比如
net.fabricmc:yarn:1.14.1 Pre-Release 2+build.2
。 - 确定这个版本的映射的确存在。这一步有点黑客范,因为目前唯一的方法就是把 build.gradle 中
minecraft
和mappings
的值改成新版本,再运行任意一个 Gradle 命令(gradle build
就行,即使它会报错),然后把这两项改回来。 - 运行这条神奇的魔法命令:
gradle migrateMappings -PtargetMappingsArtifact="net.fabricmc:yarn:1.14.1 Pre-Release 2+build.2" -PinputDir=src/main/java -PoutputDir=remappedSrc
,其中:targetMappingsArtifact
是指要迁移到的映射版本。运行这条命令时,必须把 build.gradle 设置为 mod 当前的映射版本!inputDir
是输入目录,包含 Java 源代码。outputDir
是输出目录,如果不存在会被创建。
- 如果一切正常,把重新映射的源代码复制到输入目录。
- 希望万事顺利。
注意:如果报错说找不到文件,试试把完整路径放在引号里。
鉴于我们还没有大规模地破坏中介(Intermediary)或者做类似的傻事(一般来说),以上方法应该在所有的 Minecraft 版本上都通用。
zh_cn/tutorial/migratemappings.txt · Last modified: 2023/02/05 13:10 by hendrix-shen