插播一条视频,提高英语学习效率的效率,极简版工具介绍:
Mixin框架
Mixin 是一个用于Java的trait/mixin框架,它通过ASM[1]实现,并利用一系列可插拔的内置或用户提供的服务,钩入运行时类加载过程。目前内置服务支持Mojang的LegacyLauncher[2]系统,尽管这已经被ModLauncher[3]所取代,后者由cpw开发,具有更大的扩展性,并且支持Java 8及更高版本。
文档
Mixin的主要文档可以在Wiki[4]中找到。
关于各个特性和注解的额外文档可以在详尽的Javadoc[5]中找到。如需更多帮助,请使用Sponge Discord服务器上的#mixin
频道[6]。
二进制文件
可以通过Jenkins[7]获取Mixin的二进制文件,并且它们被发布到以下maven仓库:
- https://repo.spongepowered.org/repository/maven-public/[8]
- 包含SNAPHOT和RELEASE构建 - https://files.minecraftforge.net/maven/[9]
- 仅包含RELEASE构建
工具
对于处理混淆任务,Mixin提供了一个注解处理器[10],它在编译时工作,为你的工具链生成混淆映射。如果使用Gradle 5或更高版本,注解处理器不再自动从compile
配置中加载,必须通过annotationProcessor
配置明确指定。为此,Mixin提供了包含所有所需依赖的“胖jar”工件,通过:processor
分类器提供。例如,如果你的构建使用依赖org.spongepowered:mixin:1.2.3
,那么你的注解处理器配置应该指定依赖org.spongepowered:mixin:1.2.3:processor
。
如果你在Minecraft Forge[11]项目中使用Mixin,那么可以使用MixinGradle[12]插件来简化Mixin注解处理器的配置。它为你的项目配置Mixin AP提供了简单的语法,详见MixinGradle README[13]了解如何配置MixinGradle。
与Eclipse集成
在使用Mixin开发时,你可以在Eclipse中使用Mixin注解处理器来提供上下文相关的错误和警告,帮助你更容易地调试你的混入代码。操作步骤如下:
运行 gradle build
命令以生成mixin jar打开你的eclipse项目属性,导航到 Java Compiler
->Annotation Processing
->Factory Path
勾选 Enable project specific settings
复选框点击 Add External JARs
按钮,并选择生成的带有后缀**-processor**的mixin jar(提示:它应该在Mixin/build/libs
中)向上导航一级到 Java Compiler
->Annotation Processing
勾选 Enable project specific settings
复选框勾选 Enable annotation processing
复选框点击 Processor options
框旁边的New...
按钮
设置 Key
为reobfSrgFile设置 Value
为mcp-srg.srg
文件的完整路径(映射文件的位置因平台而异,如果你不确定在哪里找到它,请按照下面的Discord链接操作)。
OK
应用更改与IntelliJ IDEA集成
通过Minecraft Development for IntelliJ IDEA[14]插件,可以在IntelliJ IDEA中获得与Mixin工作的增强功能,该插件由DemonWav[15]开发。
引用链接
[1]ASM: https://asm.ow2.io/
[2]LegacyLauncher: https://github.com/Mojang/LegacyLauncher
[3]ModLauncher: https://github.com/cpw/modlauncher
[4]Wiki: https://github.com/SpongePowered/Mixin/wiki
[5]Javadoc: http://jenkins.liteloader.com/job/Mixin/javadoc/
[6]#mixin频道: https://discord.gg/tBcwxz2
[7]Jenkins: https://jenkins.liteloader.com/view/Other/job/Mixin/
[8]https://repo.spongepowered.org/repository/maven-public/
[9]https://files.minecraftforge.net/maven/
[10]注解处理器: https://github.com/SpongePowered/Mixin/wiki/Using-the-Mixin-Annotation-Processor
[11]Minecraft Forge: https://minecraftforge.net/
[12]MixinGradle: https://github.com/SpongePowered/MixinGradle
[13]MixinGradle README: https://github.com/SpongePowered/MixinGradle/blob/master/README.md
[14]Minecraft Development for IntelliJ IDEA: https://plugins.jetbrains.com/idea/plugin/8327
[15]DemonWav: https://github.com/demonwav