记一次用 Maven 编译 CoreProtect 插件

· 技术

CoreProtect 是一个用于快速数据记录和反窃听的 Minecraft 服务器插件,常见用法便是查询箱子被哪些玩家摸过。但是,如果你需要使用 CoreProtect 的最新特性,你必须自行编译插件,或是捐助作者、得到其编译的开发版插件。正好,有一个开服的朋友找我编译 CoreProtect,整个过程还蛮有意思,就小小的记录一下。

环境准备

CoreProtect 需要使用 Maven 编译,而 Maven 自然需要 Java,所以你需要在电脑上安装好 Maven 和 Java。

注意,Maven 需要的是 Java Development Kit(简称 JDK),而不是 Java Runtime Environment(简称 JRE)。

  • Maven 选择最新版即可,在此下载
    • 我是在我的 Windows 电脑上编译,因此选择 Binary zip archive,若你使用 Linux / macOS 请选择 Binary tar.gz archive;
  • Java 版本必须选择 21,否则会报错;

安装 Java

假设你已下载好 Azul OpenJDK (JDK 21 LTS) 的安装包。安装流程到 Custom Setup 这一步,请一定要记得将 Set JAVA_HOME variable 设置成 Will be installed on local hard drive,这样你就无需再手动配置 JAVA_HOME 变量。

配置 Maven

Maven 并没有 .exe.msi 安装包。如果你长期需要使用 Maven,需要将其添加到系统变量中。

首先将下载的 Maven zip 解压、得到源文件夹,将其复制到一个你觉得合适的地方,我复制到了我的用户目录、和 .ssh, playform-tools 等文件夹放在一起。

随后打开 Windows 开始菜单,搜索「编辑系统环境变量」,在弹出的系统属性窗口中点击右下方的「环境变量」。先在下方的系统变量添加一个 MAVEN_HOME 变量:

  • 变量名:MAVEN_HOME
  • 变量值:C:\Users\gxres042\apache-maven-3.9.9

如果你也是存在用户目录下,请将 gxres042 改成你的用户名。

保存好后,来到上面的用户变量,在 Path 中添加一条 %MAVEN_HOME%\bin 即可。

保存后打开命令提示符或 Powershell,执行 mvn -v

C:\Users\gxres042>mvn -v
Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
Maven home: C:\Users\gxres042\apache-maven-3.9.9
Java version: 21.0.4, vendor: Azul Systems, Inc., runtime: C:\Program Files\Zulu\zulu-21
Default locale: zh_CN, platform encoding: UTF-8
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

能够正确输出类似上述的内容即可。

编译

克隆或下载一份 CoreProtect 的源代码 zip 包到本地并解压它。

访问源代码的 src/main/resources/ 路径,打开 plugin.yml 文件,将第四行 branch 的值修改为 development。随后返回根目录并执行:

mvn clean install

这将开始插件的编译流程。Maven 首先会下载所需要的依赖,如果你觉得太慢,试着挂一个工具看看是否有改善。以及,如果你并没有使用 Java 21,那么在正式的编译过程中会出错,因为部分依赖的版本过低、跟 Java 版本有所关联。

编译完成后,在根目录的 target 文件夹找到 CoreProtect-{version}.jar 文件(注意前面不带 original-),将其添加进你的服务器即可。如果你确实没有动 plugin.yml 的其它配置。那么 {version} 将仍是 22.4。

Loading Artalk...