构建与发布
仓库不依赖全局 Gradle;根工程和四个平台均提交各自 Wrapper。Node.js 只用于生成嵌入 JAR 的管理界面。
本地完整构建
Linux:
export JAVA_HOME_17=/path/to/jdk-17
export JAVA_HOME_21=/path/to/jdk-21
bash scripts/verify-wrappers.sh
bash scripts/build-all.sh 1.0.0
Windows PowerShell:
.\build-all.cmd
直接运行时,Windows 脚本读取四个平台 gradle.properties 中的 mod_version,并要求它们保持一致,然后构建 Web UI 与四个 JAR。-Version 2.0.0 仅用于临时覆盖配置版本,不是必填项。需要同时执行 Web 与 Java 测试时使用 .\build-all.cmd -WithTests。脚本会自动寻找 JDK 17/21 以及 ForgeGradle Mavenizer 所需的 JDK 25+;也可用 -Java17Home、-Java21Home、-ToolJavaHome 显式指定。先运行 .\build-all.cmd -PreflightOnly 可以只检查环境而不构建,重复开发构建可增加 -SkipNpmInstall。
脚本依次校验 Wrapper、构建 Web UI,然后用 JDK 17 构建 1.20.1、用 JDK 21 构建其余三个版本;-WithTests 还会运行 Web、公共 Java 与平台测试。最终目录只包含四个可分发 JAR 和 SHA256SUMS;slim、sources 和 javadoc JAR 不会被误发布。
CI 与发布
仓库中的 .github/workflows/ci.yml 面向 GitHub Actions 和 GitHub Release。若主 Git 远端托管在不提供兼容 Actions 的自建服务上,必须另行配置受保护的 GitHub/兼容镜像与发布凭据;不能假定仅推送该主远端就会运行这套流水线。未配置镜像时应使用上面的本地完整构建脚本并人工保管校验和,但这不替代 CI 证据。
- Wrapper 同时由 Gradle 官方校验数据库和仓库固定 SHA-256 校验。
- 公共模块在 Ubuntu 与 Windows 测试,覆盖 SQLite 原生库加载和跨平台路径。
- Web UI 与四个 Forge 根并行形成独立构建证据。
v*标签触发 GitHub Release;标签去掉前导v后作为模组版本。- Release 包含四个 JAR、CycloneDX JSON SBOM 和覆盖全部资产的
SHA256SUMS。
发布标签只应指向已通过专服启动、原版客户端握手、优雅停止和数据库重启恢复验收的提交。CI 编译成功不能替代这四项运行时验证。
产物命名
xfeservermanager-forge-1.20.1-<version>.jar
xfeservermanager-forge-1.20.6-<version>.jar
xfeservermanager-forge-1.21.1-<version>.jar
xfeservermanager-forge-1.21.11-<version>.jar
不要重命名一个版本的产物并用于另一个 Minecraft 版本。