# 构建开发环境
**难度分级:☆☆**
对于Forge MDK来说,你需要通过手动构建才能得到相应的开发环境。本章将简单阐述该如何构建你的Forge开发环境并与你的IDE对接。
**本章内容均基于Windows平台下,文中部分内容参考了utsc_zzzz的模组开发教程,在此做出感谢。**
## 下载远程仓库(仅EOK等Github合作项目需要进行这一步)
关于Git及Github的使用方法在本文不再赘述,你可以自行上网搜索。
首先准备好一个用于存放远程仓库的本地目录,在该目录中右键打开Git Bash,并输入如下代码:
`git clone 远程仓库地址.git`
例如下载EOK远程仓库的代码即为:
`git clone https://github.com/gonggongjohn/EOK-1.12.git`
等待下载过程完成,你便可以看到远程仓库目录已被克隆至你的本地目录下。
## 构建开发环境
解压并进入你下载的Forge MDK目录中(如果是远程合作项目则进入克隆至本地的目录中)。此时你会关注到该目录下的几个重要文件:gradlew.bat,gradlew,build.gradle,gradle\wrapper\gradle-wrapper.jar,gradle\wrapper\gradle-wrapper.properties。
### **配置构建过程**
//待补全
### **构建开发环境**
配置完各项配置文件后,你便可以打开CMD环境,进入此开发目录,并输入如下代码对本地开发环境进行构建:
`gradlew setupDecompWorkspace`
随后你会看到gradlew会自动开始下载和配置所需的各个依赖文件,这个过程根据家庭和服务器的网络环境会持续3~60分钟不等,直到出现**BUILD SUCCESSFUL**字样即为构建成功。
### **使用代理工具进行构建**
由于网络限制,部分国内用户可能需要通过代理进行构建。gradlew中对于代理可以使用如下三对参数进行设置:
`-Dhttp.proxyHost=代理工具的本地开放地址 -Dhttp.proxyPort=代理工具的本地开放端口`
`-Dhttps.proxyHost=代理工具的本地开放地址 -Dhttps.proxyPort=代理工具的本地开放端口`
`-Dsocks.ProxyHost=代理工具的本地开放地址 -Dsocks.ProxyPort=代理工具的本地开放端口`
例如如果你使用shadowsocks进行代理,你可以使用以下代码进行构建。
`gradlew setupDecompWorkspace -Dhttps.proxyHost=127.0.0.1 -Dhttp.proxyHost=127.0.0.1 -Dhttps.proxyPort=1080 -Dhttp.proxyPort=1080`
## **匹配IDE**
构建完成后,你需要将你的forge开发环境设置进你使用的IDE中。
### **对于Eclipse用户(Eclipse汉化教程在结尾)**
常规情况下,你可以在CMD环境中继续输入如下指令:
`gradlew eclipse`
随后你将看到gradlew自动开始下载依赖文件并配置项目,这个过程可能会持续几分钟(但是比构建开发环境要快得多)等待它出现**BUILD SUCCESSFUL**字样即为配置完成。
在你的本地磁盘上新建一个文件夹作为工作目录,例如`D:\EclipseWorkspace`。
启动Eclipse,软件会让你选择工作目录,此时只需选择你刚刚创建的文件夹即可。
当你进入Eclipse后,你看到的应该是这个界面:
![](https://img.kancloud.cn/b7/06/b706e71bb8b353e59e1ce88068580a2d_1920x1048.png)
单击**文件(File)->导入(Import)**打开如图所示的窗口:
![](https://img.kancloud.cn/ec/30/ec30e23b71bb3fa78b9915323f82034d_448x474.png)
选择“来自文件夹或归档文件的项目“,单击”下一步“。将项目源设为EOK的项目路径,选中下面的复选框,单击”完成“即可完成导入。
在项目资源管理器里展开项目,你应该可以看到类似如下的目录结构:
![](https://img.kancloud.cn/86/9b/869b3a90d580b4885a3c6bcb9e889c4c_422x370.png)
如果可以显示出目录结构,则说明你的项目配置成功了。
在Eclipse界面下点击**运行(Run)->Client**,Eclipse将会启动Minecraft客户端(Server即为启动服务端):
![](https://img.kancloud.cn/6f/a8/6fa8b2394bdedd0ae91c5302471df0a8_323x166.png)
如果你的操作正确,那么现在你就可以进行正式的模组开发了。
### **对于IntelliJ IDEA用户**
#### 1.导入项目
常规的IDEA匹配流程如下:
在CMD环境中继续输入如下指令:
`gradlew idea`
等待IDEA环境构建完成。打开文件夹中的项目名.ipr文件即可。
~~但在很多情况下,这样做会使得IDEA无法自动和gradlew进行关联(在IDEA环境中不出现build过程)。
一个更推荐的做法如下:
打开一个新的IDEA界面,选择**import project**,并选择你的forge开发目录下的**build.gradle**文件,设置好JDK的相关信息,随后IDEA会自动构建和匹配对应你的forge开发目录的项目环境。~~
在左侧Project窗口中找到**build.gradle**文件,右击它选择"Import Gradle project",等他导入完毕后在IDEA的**Gradle窗口**中执行`setupDecompWorkspace` task。
如果你没有找到Gradle窗口,你需要点击左下角的图标,选择Gradle选项:
![](https://img.kancloud.cn/12/61/1261dfea11c4ea3085cb46f228de5762_179x288.png)
在右侧会弹出一个框,其中显示了所有可用的Gradle Task。
这个过程会持续5-30分钟不等(可能还会重新下载一次gradle-bin),直到**控制台中显示BUILD SUCCESSFUL**即构建成功。
双击选项即可运行对应指令。其中build为构建模组jar文件,runClient为运行客户端,runServer为运行服务端(**但我们并不推荐使用此方法来启动Minecraft**):
![](https://img.kancloud.cn/f5/ee/f5ee09e0dc27e32ba643dd37cb54d5b8_318x671.png)
之后你也可以通过右边的工具栏访问该Gradle窗口:
![](https://img.kancloud.cn/60/84/6084cc076ddd399e3e9a2279fe2bcc5b_59x310.png)
点击左侧的Project工具栏,将目录显示改为**Production**以独立显示你的模组包:
![](https://img.kancloud.cn/2c/10/2c100a055612eeca3e06f0d3c98190fe_222x250.png)
如果你想要查看Minecraft源代码及外部依赖库代码,只需将目录显示改回Project即可。
#### 2. 启动/调试Minecraft
首先你可以在IDEA界面右上角找到下图所示的运行/调试按钮:
![](https://img.kancloud.cn/f4/a6/f4a63e97a2465c9d9055db7e03bf112d_339x106.png)
但~~因为各种特性,~~ 直接这样启动会导致**mod的资源文件没有被复制到游戏里**,我们必须要对启动方案进行配置才能正常启动。
首先点击上图中的启动方案选择框,单击“**Edit Configurations...**”按钮,打开下图所示界面,按图中描述进行配置:![](https://img.kancloud.cn/bb/92/bb92a59a60e9a2fc28c33c4d72b31889_1076x682.png)
设置完后单击"Apply"然后单击"OK",再单击Gradle窗口上边的**扳手图标**(如图所示):
![](https://img.kancloud.cn/a5/29/a52915944108cf0bfbf82b98fabb8000_426x155.png)
打开如下界面,按图示设置:
![](https://img.kancloud.cn/51/28/5128ccd58972dd37d4ce9184bcc89dbb_997x704.png)
此时,你已经可以启动Minecraft了,如果Minecraft正常启动,说明你的配置成功了,现在你就可以进行正式的模组开发了。
#### 其他内容:
正常的模组开发中,我们都会用到很多辅助mod(例如JEI, The One Probe等)。
要在开发环境中使用这些mod,我们可以像正常装mod一样,将mod放入上述操作中提到的MC根目录的mods文件夹下。
需要注意的是,**某些mod并不能在开发环境中正常运行**,例如Optifine。如果你在启动时看到类似"找不到类"这种崩溃原因,并且确保自己装了正确的依赖mod的话,基本上可以确定这个mod不能在开发环境运行。
另外,Eclipse想要在调试时修改代码逻辑(既热代码替换, Hot Swap)可以直接按Ctrl+S(就是保存),Intellij IDEA需要按Ctrl+F9
注:以上两种方式都要在调试时使用,并且**不能对类/方法/字段的签名进行修改**。
#### **附录-如何汉化Eclipse**
**~~你可能会发现主题配色变了,这是因为这些截图是在另一台新电脑上截取的~~**
在Eclipse工作环境中,单击**Help->Install New Software**,打开如图所示窗口:
![](https://img.kancloud.cn/ab/80/ab80e150b003293dc04928f4fce95ee7_870x759.png)
在"Work with"栏输入链接`https://download.eclipse.org/technology/babel/update-site/R0.17.0/2019-06/`
单击”Add“按钮,在弹出的对话框里再次单击”Add“,然后等待Eclipse获取资源,这可能会花费几分钟~~至几小时~~的时间。
![](https://img.kancloud.cn/ed/bd/edbdbb10a72766f54a63227ec2bf5ef2_867x771.png)
如图,选择”简体中文“,单击”Next“,在显示的确认页面再次单击”Next“,接受用户协议,最后单击”Finish“。
此时,你的Eclipse界面右下角应该会有这样一个进度条:
![](https://img.kancloud.cn/f4/21/f4217cefbb07ac23603b80ff0e2487e2_287x29.png)
单击进度条右边的按钮可以查看安装进度。
![](https://img.kancloud.cn/f5/61/f561b025cc53e1c9706f28b47750b8d2_1267x167.png)
这一过程可能会持续几分钟至半小时(视网络状况),若看到如图所示的安全警告,直接选”Install anyway“即可。
![](https://img.kancloud.cn/66/fa/66fac533932e562b16a39883147787de_551x196.png)
在安装过程中,你可以继续进行开发。在安装完成后,会弹出对话框问你是否要重新启动Eclipse。
![](https://img.kancloud.cn/d2/ad/d2ad2ca8054acf4bec6371a4eb68682d_551x170.png)
此时选择”是“即可。
重启后,你应该就可以看到中文界面了。
![](https://img.kancloud.cn/cc/63/cc633eef1de55fa69033bca3b209ddb3_1402x751.png)
- 0.引子
- 基础篇 - 1.构建开发环境
- 基础篇 - 2.主类和代理
- 基础篇 - 3.创建一个物品
- 基础篇 - 4.创建一个方块
- 基础篇 - 4.1自定义方块模型
- 基础篇 - 5.初探事件系统
- 基础篇 - 6.Capability系统
- 基础篇 - 7.创建一个方块实体
- 基础篇 - 8.你的第一个GUI
- 基础篇 - 9.网络与通讯
- 进阶篇 - 0.更复杂的Mod
- 进阶篇 - 1.Minecraft渲染原理
- 进阶篇 - 2.更复杂的GUI
- 进阶篇 - 3.物品进阶
- 高级篇 - 1.深入探索OpenGL
- 高级篇 - 1.1OpenGL颜色渲染
- 高级篇 - 1.2OpenGL光照系统
- 高级篇 - 2.Minecraft贴图加载原理