在 IDE 中调试
注解
关于设置 IDE 和依赖的信息可参考:“设置开发环境”、“设置你的项目”。
关于在 IDE 中调试插件的信息可参考“调试插件”一文中的“运行你的配置”和“使用调试器”两小节。
本文目前基于 IntelliJ IDEA 编写。如果你是 Eclipse 用户,且能写出这篇文章的 Eclipse 版本,我们欢迎你直接向我们的 GitHub 仓库 发起 PR。
使用 IDE 调试 Sponge 比较简单,基本上就是在你部署完工作环境后将 build.gradle
导入 IDE 中。请确保你已安装了 JDK 8 且已令 IDE 使用 JDK 8,以及将项目以一个 Gradle 项目的身份导入 IDE。在此之后你就可以运行代码并进行测试了。
关键设置
下文列出了一些经常出现问题的设置:
Gradle 插件
确认 Gradle 插件已启用。请依次打开 File
-> Settings
-> Plugins
,在打开的窗口中找到 Installed
标签,确认是否有一名为 Gradle
的插件,且该插件名字旁有一个代表已启用的对勾。如果你找不到这个插件,请在 Marketplace
标签中搜索并安装。
Project SDK
Project SDK(项目使用的 SDK)一项应为 1.8.0_20
或更高版本。项目的 Language Level(编译等级)应为 8 - Lambdas, type annotations etc.
。
Run/Debug 配置
Gradle 任务 genIntelliJRuns
会帮你创建合适的 Run 及 Debug 配置,只需在项目根目录执行 ./gradlew genIntelliJRuns
即可。务必在打开 IDE 之前执行此命令。如果你已经打开了 IDE,你可以选择在执行完此命令后重启 IDE。若一切无误,此时你应当能在 Application Configuration 中找到 Minecraft Client
和 Minecraft Server
两项,以及在 Gradle Configuration 中找到 SpongeForge [jar]
和 SpongeForge [clean]
两项。
Coremods
注解
Coremod 不属于 SpongeVanilla 的一部分。参考 Sponge 术语表了解 Coremod 的具体定义。
Gradle 及其他 Sponge 提供的自动化工具不会配置除了 Sponge 它自己用的 Coremod 以外的其他 Coremod,因此你需要手动配置。配置的方法是在 VM 选项中加入 -Dfml.coreMods.load
一项,它的值是逗号分割的 Coremod 类名。VM 选项需要在 Run/Debug 配置中指定。
Classpath
在 Run/Debug 配置的窗口中,检查 Use classpath of module:
是否已经正确设置。如果它当前仍是 <no module>
,请在该选项的下拉菜单中选择那个名字以 _main
结尾的 module。
小技巧
如果还是不确定,请直接选择你要用的那一个。比如说如果你要调试 SpongeForge,那就选 SpongeForge_main
,如果是 SpongeVanilla 那就是 SpongeVanilla_main
。
使用 IDE 进行调试
现在你已经正确配置所有东西了,你可以像往常一样在 IDE 中设置断点、单步执行代码、检查某个变量的值或者解析任意表达式了。自然地,你也可以使用诸如命令和日志输出这样的游戏特性。
与 Mod 和插件一起调试
若你需要调试某个 Mod 或插件,你应当将那个 Mod 或插件复制到 run/mods
目录下。IDE 允许你检查其代码并设定断点,但你必须首先将该目录指定为库文件目录。
只需在 Project Settings
中找到 Libraries
组件,点击中间一栏上方的 +
,然后选择 Java
,并在打开的窗口中找到 mods
目录并点击 OK
,即可。此时你应当可以在 IDE 中浏览 Mod 或插件的代码并设定断点了。
警告
使用此特性时,请务必确认已遵守所有版权提示及许可协议。