# MES 客户端自动升级约定 现场客户端启动时请求本约定下的静态资源,对比本地版本后下载 zip 并自动替换,无需手工覆盖 EXE。 ## 服务端路径(相对 `http://{mes.server_ip}:8980`) | 资源 | 路径 | 说明 | |------|------|------| | 版本清单 | `/client-update/version.json` | 必填 | | 安装包 | `/client-update/MesClient-{version}.zip` | 与 `packageUrl` 一致 | 将上述文件放到 Jeesite/Tomcat 可访问的静态目录(例如 `webapp/client-update/`)。 ## version.json 字段 ```json { "version": "1.2.0", "force": false, "packageUrl": "http://192.168.9.180:8980/client-update/MesClient-1.2.0.zip", "sha256": "", "notes": "修复说明(可选)" } ``` - `version`:服务端最新版本,三段数字 `主.次.修订` - `force`:`true` 时不可跳过,必须升级后才能继续使用 - `packageUrl`:zip 完整下载地址(可与服务器 IP 一致) - `sha256`:可选,zip 文件 SHA-256 十六进制;为空则不校验 - `notes`:更新说明,弹窗展示 检查失败(网络/404)不阻断启动。 ## zip 包内容 与现场安装目录结构一致: ```text MesClient.exe # 可选,启动壳未变可省略 MesClient.jar # 业务更新时必含 MesClient.l4j.ini # 可选 app.version # 必含,一行纯文本版本号,如 1.2.0 ``` 推荐日常使用 **JAR 与 EXE 分离** 打包,多数发版只需更新 JAR + `app.version`。 ## 本地版本读取顺序 1. 安装目录旁 `app.version` 2. 若无,则读 JAR 内 `config/config.properties` 的 `mes.client.version` ## 客户端配置 ```properties mes.client.version=1.0.0 mes.update.enabled=true mes.update.path=/client-update/version.json ``` `mes.update.enabled=false` 可紧急关闭自动升级。 ## 发版步骤摘要 1. 升高 `mes.client.version` 与旁路 `app.version` 2. 导出 JAR,用 jar2exe **分离模式** 生成 EXE(壳未变可复用旧 EXE) 3. 用 `tools/client-release/package-update.bat` 打 zip 4. 上传 zip 与更新后的 `version.json` 到服务器 `/client-update/`