构建Mod开发环境很难吗
(本文限于Java版1.12.2模组开发)
说实话,难。比做mod还难一些。
本文介绍Mod开发环境的构建原理,并汇总几个常见的问题,还有解决的方案。

要想在理解的基础上诊断、解决问题,就得先搞懂开发环境的层次。
【表层】
你的代码
IDE(Integrated Development Environment,集成开发环境,一般是IDEA或者Eclipse)
MDK(Mod Development Kit,模组开发包,就是官方的MDK或者我的IDF)
Gradle(用于编译、整合依赖库的东西)
JDK (Java Development Kit,用来写Java的东西)
操作系统(Windows)
硬件(笔记本、台式机)
【底层】
要想正常地开发,就得让这些东西每一个都由上到下地承接好。如果下面的东西没有正确部署,上面的也就无从谈起。我们从下往上看。
首先,你需要一个设备。靠脑子和纸笔只能构思,做不出可以玩的mod。
接着,你需要一个操作系统。我的建议是使用Windows,这样我方便帮你。别的理论上也可,但出了什么岔子我就爱莫能助了。
大部分人都有windows系统,哪怕是苹果机也有的装了windows,所以这部分一般没什么问题,但接下来部分就是出岔子的常客了。

JDK问题!
【问题1:系统变量配置错误】
Gradle需要使用JDK。那么,Gradle怎么找到你系统的JDK呢?答案是靠环境变量JAVA_PATH。你可能以为自己装了JDK,系统自然会配置好,实则不然。已经有俩人因为构建失败加我的群,我一看是因为JAVA_PATH配错了。
那么JDK安装的时候为什么不能给你配好这东西呢,它是脑残吗?事实上,既然是开发MCmod的人,十有八九会玩MC,但是玩MC就需要装Java。而一般玩MC装的这个Java,它是JRE(Java Runtime Environment,Java运行库)。JDK包含一个JRE,但JRE不能当JDK使。在你装JRE的时候,系统很可能把JAVA_PATH配成它了。之后装JDK如果不改的话,Gradle就会由于找到了JRE的那个java而无法工作。
解决:把JAVA_PATH改成JDK的安装路径。改系统变量的过程,不同系统有所区别,为了解决篇幅就不讲了。百度一下即可。

【问题2:Java版本不正确,Gradle版本不正确,IDEA版本不正确】
如果你只是百度“JDK”,那你十有八九会下载到最新版的JDK,也就是JDK15。很不幸的,马上你就会见到各种邪门的互相不兼容,包括gradle不兼容新版Java,idea不兼容旧版gradle,Idea不兼容旧版java……
一个可行的组合是JDK 8 + Gradle 2.14 + IDEA 2019.4。
其中,JDK和IDEA的版本是自己下的;Gradle的版本是由MDK指定的。
如果你觉得一头扎进互不兼容很有意思,那你大可偷懒都下最新版,然后焦头烂额地发现还是得按照我的组合来。
很多教程都没有提到这点,多半是因为它们录制的年代太早了,那时还没这么多新版本,尤其是没有傲娇的IDEA 2020。
好了,下载JDK的过程也相当恶心,你需要在一个国外的英文网站里,注册Oracle账户,还要找到指定的版本,并且确保你的浏览器不会因为bug让你点不开下载按钮。这算是很好解决的问题了,因为解决这个不需要懂代码,只需要能看懂一点点英文,还有多于一个的浏览器储备。
JDK装好了,然后呢?且听下回分解……不,我继续说。

Gradle问题!
【问题3:Gradle下载失败】
1,要部署MDK,就需要用Gradle;
2,要用Gradle,就要先下载Gradle。
这两步本来无比轻松,却因为网络远隔重洋,下载慢的令人发指,两者都可能失败。由于某些文件有大约20MB,在1KB/s的速度下可能超过30分钟——被判定为下载超时,强制中断。那么,你以为重新下载一次就能好了?这慢不是因为网络波动,他是固有的慢,无论重试几次都不行。
这种时候,要么就用魔法加速网络,要么就找人给你个下载完成的,扔到gradle的目录。
你看国外的教程当然是不会提到这一点的。国内的教程……早年间也没这么卡,也大多没有提及。
IDF是自带第2步的加速的,但第1步没有,因为我不知道咋加速它。

【问题4:Gradle运行失败——缓存损坏】
由于你之前下载文件到一半中断了,缓存可能损坏。这个时候重新下一次也许可以。如果不行,嗯……全删了,找个人给你下载好的文件吧。

【问题5:Gradle运行失败——内存不足】
IDF默认配置使用3G内存跑Gradle,MDK若我没记错是2G,但有的电脑可能不够。这种时候把gradle.properties里的org.gradle.jvmargs=-Xmx3G改成org.gradle.jvmargs=-Xmx1G即可。如果你电脑连1G内存都分配不出来趁早放弃吧。注意我说的是内存,不是硬盘。

IDEA出问题?
IDEA版本的问题被我写在第2条里了。

就这么多。我去赏析明日方舟新活动了,各位再见。