如何从 Git 自动构建多版本 Modpack?SKCraft Launcher × CI 实战完整指南

📅 发布时间:2026/8/23 12:22:27
如何从 Git 自动构建多版本 Modpack?SKCraft Launcher × CI 实战完整指南 如何从 Git 自动构建多版本 ModpackSKCraft Launcher × CI 实战完整指南【免费下载链接】Launcher Distribute your Minecraft modpacks with a custom launcher项目地址: https://gitcode.com/gh_mirrors/launc/LauncherSKCraft Launcher是 Minecraft 最古老的 Modpack 分发平台拖入 mods 和配置文件、自动生成构建包让你的玩家一键安装并随时增量更新 Modpack。官方明确支持从 Git或任何 VCS配合你最爱的持续集成服务器生成 Modpack甚至可以做到一个分支或 Tag 对应一个 Modpack——这正是多版本自动构建的关键。一、核心思路一条命令打通 Git 到构建整个自动化的秘密在于PackageBuilder位于 launcher-builder/src/main/java/com/skcraft/launcher/builder/PackageBuilder.java它既是图形工具背后的引擎也是可直接被 CI 调用的命令行程序。每次 CI 构建只需三步检出Git 仓库不同分支/Tag 不同版本执行构建命令传入--version版本号建议直接用 Git commit 或 Tag 名上传输出目录到你的静态 Web 服务器或 CDNjava -cp launcher-builder.jar com.skcraft.launcher.builder.PackageBuilder \ --version v1.2.3 \ --manifest-dest ./output/lightpack.json \ -i ./pack \ -o ./output参数含义见 BuilderOptions.java参数作用--version本次构建的版本号必填多版本的核心--manifest-dest生成的 manifest 文件路径必填-i / --inputModpack 源目录含src/、loaders/、modpack.json-o / --output输出目录生成objects/与libraries/--mc-version覆盖modpack.json中的游戏版本二、Modpack 源码目录多版本的原料构建器扫描的是标准目录结构你可以把它整个放进 Git 仓库pack/ ├── modpack.json # 打包配置名称、游戏版本、启动参数 ├── version.json # 可选本地游戏版本清单离线构建 ├── src/ │ ├── config/ │ ├── mods/ │ └── resourcepacks/ └── loaders/ # Forge / Fabric / Quilt 安装器modpack.json声明游戏版本例如示例包 sample-files/lightpack/modpack.json 中的gameVersion: 1.8loaders/放入 Forge / Fabric / Quilt 安装器 JAR构建器会自动解析其install_profile.json并下载全部依赖库见 PackageBuilder.java#L148-L195多版本策略每个分支/Tag 对应一份源码或按游戏版本维护多个modpack.json配合--mc-version参数三、CI 流水线一个分支一个 Modpack官方 README 原文推荐you can generate modpacks from Git (or any VCS) using your favorite continuous integration server, and then dynamically create modpacks even down to one per branch or tag见 README.md。典型流水线任意 CI 系统均可触发推送 Tag如v1.2.3或合并到发布分支构建调用上面的PackageBuilder命令--version取 CI 的 Tag 名/commit 短哈希校验构建器内置validateManifest()缺name或gameVersion会直接失败PackageBuilder.java#L315-L318CI 可据此拦截坏包上传把output/目录整体上传到静态站点无需 PHP结构见 sample-files/upload/注册将新包加入packages.json索引示例含 name、version、location、priority 字段客户端即可在启动器中选择 增量更新与文件去重由启动器自动完成玩家升级新版只下载变化的文件同一站点多个包共享objects/时自动复用磁盘空间。四、发布后的玩家体验构建产物被索引后玩家端就是熟悉的启动器界面启动器会拉取packages.json列出所有包按version判断是否有更新增量更新还支持可选特性features把部分 mods 标记为可选玩家自行勾选安装见 Feature.java五、常用技巧清单️版本号规范用 Tag 名或语义化版本避免时间戳方便回溯离线构建在pack/中放入version.json构建器会跳过联网拉取版本清单PackageBuilder.java#L328-L356CI 环境更稳定一个 Tag 一个包lightpack与monsterpack共用同一objects/不同游戏版本1.8 与 1.13各用独立 manifest本地调试先用图形版 Creator 手工打包验证目录结构再交给 CI 全自动化入口 Creator.java六、总结步骤工具/命令说明版本管理Git 分支/Tag每个 Tag 即一个可发布版本构建PackageBuilder --version …CI 中一条命令生成完整分发目录发布静态站点 packages.json无需后端支持增量更新玩家端SKCraft Launcher自动检测更新、按需下载把 Modpack 源码交给 Git把构建交给 CI剩下的交给 SKCraft Launcher——多版本自动分发就是这么简单 【免费下载链接】Launcher Distribute your Minecraft modpacks with a custom launcher项目地址: https://gitcode.com/gh_mirrors/launc/Launcher创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考