User Tools

Site Tools


zh_cn:tutorial:mappings

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
zh_cn:tutorial:mappings [2020/11/17 03:47] – [使用映射] solidblockzh_cn:tutorial:mappings [2023/08/16 02:30] – [混淆和反混淆] wjz_p
Line 7: Line 7:
 在Loom中,映射定义了你在开发环境中使用的Minecraft类、字段和方法的名称。这些名称可能因开发环境而异,取决于你安装的映射。 在Loom中,映射定义了你在开发环境中使用的Minecraft类、字段和方法的名称。这些名称可能因开发环境而异,取决于你安装的映射。
  
-Yarn是Loom使用的默认映射。随着对贡献的接受,Yarn逐渐改进并接受新的发布。Loom中的映射是使用buildcraft中的''mappings''依赖配置指定的,可以通过更新依赖来更新。Minecraft以及包含在模组增强依赖配置中的依赖项(如''modCompile'')都是通过映射来重映射的。不在Yarn中映射的类、字段和方法,会以中介的显示,如''class_1234''、''method_1234''、''field_1234''+Yarn是Loom使用的默认映射。随着对贡献的接受,Yarn逐渐改进并接受新的发布。Loom中的映射是使用buildcraft中的''mappings''依赖配置指定的,可以通过更新依赖来更新。Minecraft以及包含在模组增强依赖配置中的依赖项(如''modCompile'')都是通过映射来重映射的。不在Yarn中映射的类、字段和方法,会以中名显示,如''class_1234''、''method_1234''、''field_1234''
  
 <code> <code>
Line 18: Line 18:
 通过改变您的开发环境中的映射,Minecraft中类、方法和字段的名称和包括的模组都可能会改变,您的代码可能需要更新才能引用更改的名称。[[tutorial:migratemappings|这一过程可以部分自动化]]。你可能也需要运行''genSources''来运行带有更新的映射的Minecraft源代码。 通过改变您的开发环境中的映射,Minecraft中类、方法和字段的名称和包括的模组都可能会改变,您的代码可能需要更新才能引用更改的名称。[[tutorial:migratemappings|这一过程可以部分自动化]]。你可能也需要运行''genSources''来运行带有更新的映射的Minecraft源代码。
  
-Loom的''remapJar''任务会提供原始的模组成品,这个成品是使用中的jar文件。此外,如果有''sourcesJar''任务,''remapSourcesJar''会产生使用中的源代码jar。这些jar文件都可以作为模组安装,或者连同''modCompile''依赖配置一起被包括在开发环境中。+Loom的''remapJar''任务会提供原始的模组成品,这个成品是使用中名的jar文件。此外,如果有''sourcesJar''任务,''remapSourcesJar''会产生使用中名的源代码jar。这些jar文件都可以作为模组安装,或者连同''modCompile''依赖配置一起被包括在开发环境中。
  
-  * **'-dev' jar(''jar''任务的输出)不使用中,因此无用。**它不可以被安装为开发环境之外的模组,且只能在带有符合的映射的开发环境中起作用。常规的jar文件(''remapJar''任务输出)才应被使用并使用像''modCompile''这样的模组增强依赖项安装在开发环境中。 +  * **'-dev' jar(''jar''任务的输出)不使用中名,因此无用。**它不可以被安装为开发环境之外的模组,且只能在带有符合的映射的开发环境中起作用。常规的jar文件(''remapJar''任务输出)才应被使用并使用像''modCompile''这样的模组增强依赖项安装在开发环境中。 
-  * **Yarn名称仅应用于开发环境**。在开发环境之外,只存在中,也就是说代码不会准确地匹配你看见和写的东西。Loom transparently可以为您处理这个转换,但是使用反射(reflection)时要谨慎。+  * **Yarn名称仅应用于开发环境**。在开发环境之外,只存在中名,也就是说代码不会准确地匹配你看见和写的东西。Loom transparently可以为您处理这个转换,但是使用反射(reflection)时要谨慎。
  
 === Mojang的映射 === === Mojang的映射 ===
Line 60: Line 60:
 Minecraft Java Edition的发行版是混淆的jar文件,这意味着它们是已编译的二进制文件,其中剥离了任何有意义的命名信息,仅保留了裸露的逻辑。 模糊处理的动机是防止反向工程并减小文件大小。 像Minecraft这样的Java程序很容易反编译,但是混淆处理剥夺了很多对修改目的有用的信息。 也许有人会怀疑一开始如何为Minecraft进行开发。 Minecraft Java Edition的发行版是混淆的jar文件,这意味着它们是已编译的二进制文件,其中剥离了任何有意义的命名信息,仅保留了裸露的逻辑。 模糊处理的动机是防止反向工程并减小文件大小。 像Minecraft这样的Java程序很容易反编译,但是混淆处理剥夺了很多对修改目的有用的信息。 也许有人会怀疑一开始如何为Minecraft进行开发。
  
-像Yarn这样的映射为开发提供了有意义的名称。 使用映射可以理解Minecraft代码并为其创建mod。 映射可以提供类,字段,方法,参数和局部变量的名称。 显然,这些映射并不完美。 绘制《我的世界》的整个地图需要来自多个贡献者的大量猜测。 映射可能不完整,有时会随着找到更准确的名称而更改。+像Yarn这样的映射为开发提供了有意义的名称。 使用映射可以理解Minecraft代码并为其创建mod。 映射可以提供类,字段,方法,参数和局部变量的名称。 显然,这些映射并不完美。 绘制《我的世界》的整个映射表需要来自多个贡献者的大量猜测。 映射可能不完整,有时会随着找到更准确的名称而更改。
  
 ==== 中间名 ==== ==== 中间名 ====
zh_cn/tutorial/mappings.txt · Last modified: 2024/04/15 00:57 by solidblock