From dbe552a080617a605f966e275ab15282a3c41f25 Mon Sep 17 00:00:00 2001 From: Lam Tong Date: Thu, 1 Oct 2026 14:29:45 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20Maven=20Central=20=E5=8F=91=E5=B8=83?= =?UTF-8?q?=E8=8C=83=E5=9B=B4=E6=94=B6=E7=AA=84=E8=87=B3=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E7=AB=AF=20SDK=20=E9=93=BE=E2=80=94=E2=80=94server/console/cor?= =?UTF-8?q?e=20=E9=80=80=E5=87=BA=E4=B8=AD=E5=A4=AE=E4=BB=93=E5=BA=93?= =?UTF-8?q?=EF=BC=8C=E6=9C=8D=E5=8A=A1=E7=AB=AF=E4=B8=8E=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E5=8F=B0=E6=94=B9=E7=BB=8F=20GitHub=20Releases=20=E5=88=86?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 决策依据:Central 仅承载消费者按坐标解析的库构件,即根 POM(parent)+ openlatch-protocol + openlatch-client + openlatch-spring-boot-starter。server 与 console 属应用发行件,其 fat executable jar(1.0.0 实测 30.6+51.9MB,占全仓库 92.8%)一经发布永不可删、逐版本再冻结,中央仓库长期承载属纯负债;core 仅为 server 的 compile 传递依赖,server 退出后无任何在架 POM 引用它,随之一并排除。收窄后每版发布体量 84.9MiB→3.7MiB。client/starter 对 server 仅 test scope,消费者不解析,不受影响;GitHub 上 examples 的独立构建路径由指南保留源码构建口径兜底。 变更:根 pom release profile excludeArtifacts 增列 openlatch-core/server/console(与 examples 同机制,maven.deploy.skip 不被 central-publishing 插件尊重),profile 注释重写为双渠道分发口径。文档同步(双语):README 要求表构件行改双渠道表述、单节点服务器下载由 repo1 直链改 Releases+curl;guide 02 取构件步骤改 Releases 为主、源码构建为备(清掉"中央仓库发布前"过时句),启动步骤注明两种 jar 路径;guide 07 部署段加 Releases 下载;guide 10 "中央仓库"行改"构件分发"双渠道。文档引用 v1.0.0 Release 资产(server/console executable jar,自 Central 拉取并 sha256 校验逐字节一致后上传)。 验证:deploy -DskipPublishing 发布束演练全反应堆 BUILD SUCCESS,逐模块判定仅四件进入发布候选、core/server/console/examples 零候选(排除生效);check-source-citations 门禁零命中;全仓 grep 无残留 repo1 服务/控制台直链与 openlatch-* 通配宣称。 --- README.md | 5 +++-- README_CN.md | 5 +++-- docs/guide/en/02-quickstart.md | 13 +++++++++++-- docs/guide/en/07-admin-console.md | 8 +++++++- docs/guide/en/10-compatibility.md | 2 +- docs/guide/zh/02-quickstart.md | 12 ++++++++++-- docs/guide/zh/07-admin-console.md | 7 ++++++- docs/guide/zh/10-compatibility.md | 2 +- pom.xml | 13 +++++++++++-- 9 files changed, 53 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 1c25c58..e06c423 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ lock-lost callback in every critical path. The full semantics live in the guides | Java | **25** (all artifacts, `release=25`) | | Spring Boot starter | **4.x only** (Boot-4-only dependencies); Boot 3.x → assemble the SDK manually | | Wire protocol | v1 / v2 / v3 via HELLO negotiation, range `[1,3]`, no implicit compatibility | -| Artifacts | Published on **Maven Central** (`io.github.lamspace:openlatch-*`, 1.0.0+) | +| Artifacts | Client SDK chain (`openlatch-protocol` / `openlatch-client` / `openlatch-spring-boot-starter`) published on **Maven Central**, 1.0.0+; server & console executable jars on **GitHub Releases** | ## 🚀 Quick Start @@ -78,9 +78,10 @@ Add from Maven Central (`io.github.lamspace`, 1.0.0+): ``` Run a single-node server — grab the executable jar from -[Maven Central](https://repo1.maven.org/maven2/io/github/lamspace/openlatch-server/1.0.0/openlatch-server-1.0.0-executable.jar): +[GitHub Releases](https://github.com/LamSpace/OpenLatch/releases): ```bash +curl -LO https://github.com/LamSpace/OpenLatch/releases/download/v1.0.0/openlatch-server-1.0.0-executable.jar java -jar openlatch-server-1.0.0-executable.jar # listens on :9410 ``` diff --git a/README_CN.md b/README_CN.md index 2c807b9..1998dc7 100644 --- a/README_CN.md +++ b/README_CN.md @@ -53,7 +53,7 @@ Spring Boot 4 声明式注解 `@OpenLatch`、只读 Web **管理控制台**、Pr | Java | **25**(全部构件 `release=25`) | | Spring Boot starter | **仅 4.x**(依赖 Boot 4 独有构件);Boot 3.x 请手动装配 SDK | | 线路协议 | v1 / v2 / v3,HELLO 协商区间 `[1,3]`,不做隐式兼容 | -| 构件 | 已发布 **Maven Central**(`io.github.lamspace:openlatch-*`,1.0.0+) | +| 构件 | 客户端 SDK 链路(`openlatch-protocol` / `openlatch-client` / `openlatch-spring-boot-starter`)发布 **Maven Central**(1.0.0+);服务端与控制台可执行 jar 发布于 **GitHub Releases** | ## 🚀 快速上手 @@ -75,9 +75,10 @@ Spring Boot 4 声明式注解 `@OpenLatch`、只读 Web **管理控制台**、Pr ``` -单节点服务器——从 [Maven Central](https://repo1.maven.org/maven2/io/github/lamspace/openlatch-server/1.0.0/openlatch-server-1.0.0-executable.jar) 下载可执行 jar: +单节点服务器——从 [GitHub Releases](https://github.com/LamSpace/OpenLatch/releases) 下载可执行 jar: ```bash +curl -LO https://github.com/LamSpace/OpenLatch/releases/download/v1.0.0/openlatch-server-1.0.0-executable.jar java -jar openlatch-server-1.0.0-executable.jar # 监听 :9410 ``` diff --git a/docs/guide/en/02-quickstart.md b/docs/guide/en/02-quickstart.md index de9a491..b756051 100644 --- a/docs/guide/en/02-quickstart.md +++ b/docs/guide/en/02-quickstart.md @@ -7,7 +7,15 @@ Prereq: Java 25, Maven. ### 1. Get the artifacts -Before Central publication, build and install locally: +The client SDK resolves from Maven Central (coordinates in step 3). For the server, +grab the executable jar from +[GitHub Releases](https://github.com/LamSpace/OpenLatch/releases): + +```bash +curl -LO https://github.com/LamSpace/OpenLatch/releases/download/v1.0.0/openlatch-server-1.0.0-executable.jar +``` + +…or build from source instead (Path B below writes the `target/` layout): ```bash git clone https://github.com/LamSpace/OpenLatch.git && cd OpenLatch @@ -17,7 +25,8 @@ mvn clean install -DskipTests ### 2. Start the server ```bash -java -jar openlatch-server/target/openlatch-server-1.0.0-executable.jar +java -jar openlatch-server-1.0.0-executable.jar +# (built from source instead: openlatch-server/target/openlatch-server-1.0.0-executable.jar) # log confirms: OpenLatch server started: port=9410, ... metricsPort=9412 ``` diff --git a/docs/guide/en/07-admin-console.md b/docs/guide/en/07-admin-console.md index d20e99a..a26bf46 100644 --- a/docs/guide/en/07-admin-console.md +++ b/docs/guide/en/07-admin-console.md @@ -8,11 +8,17 @@ detail pages show lock-table entries, wait queues and session footprints. ## Deployment +Grab the executable jar from +[GitHub Releases](https://github.com/LamSpace/OpenLatch/releases), then: + ```bash java -Dopenlatch.console.config=/path/to/console.properties \ - -jar openlatch-console/target/openlatch-console-1.0.0-executable.jar + -jar openlatch-console-1.0.0-executable.jar ``` +(If you built from source instead, the jar is at +`openlatch-console/target/openlatch-console-1.0.0-executable.jar`.) + Co-locating with observed nodes is fine (separate process). Template: `openlatch-console/console.properties.example` in the repo. diff --git a/docs/guide/en/10-compatibility.md b/docs/guide/en/10-compatibility.md index 0bb9d48..10ef497 100644 --- a/docs/guide/en/10-compatibility.md +++ b/docs/guide/en/10-compatibility.md @@ -9,7 +9,7 @@ | Spring Framework | whatever Boot 4 ships (Framework 7) | starter targets Boot 4 contexts only | | Wire protocol | servers accept **v1 / v2 / v3 / v4 / v5** (HELLO negotiation, range [1,5]) | out-of-range rejected at handshake — no implicit compatibility | | Micrometer | host-provided (not transitive) | inject a `MeterRegistry` to enable client metrics | -| Maven Central | published (1.0.0+) | use `io.github.lamspace:openlatch-*` coordinates directly, or build locally | +| Artifact delivery | client SDK chain (`openlatch-protocol` / `openlatch-client` / `openlatch-spring-boot-starter`) published on Maven Central (1.0.0+); server & console executable jars on GitHub Releases | client: use the coordinates directly; server/console: download a jar or build locally | ## Protocol capabilities by version diff --git a/docs/guide/zh/02-quickstart.md b/docs/guide/zh/02-quickstart.md index 2afdec1..0b83eac 100644 --- a/docs/guide/zh/02-quickstart.md +++ b/docs/guide/zh/02-quickstart.md @@ -6,7 +6,14 @@ ### 1. 取构件 -中央仓库发布前,本地构建安装: +客户端 SDK 按 Maven Central 坐标引入(见第 3 步)。服务器可执行 jar 从 +[GitHub Releases](https://github.com/LamSpace/OpenLatch/releases) 下载: + +```bash +curl -LO https://github.com/LamSpace/OpenLatch/releases/download/v1.0.0/openlatch-server-1.0.0-executable.jar +``` + +……或改为本地源码构建(下文路径 B 的命令按 `target/` 布局书写): ```bash git clone https://github.com/LamSpace/OpenLatch.git && cd OpenLatch @@ -16,7 +23,8 @@ mvn clean install -DskipTests ### 2. 启动服务器 ```bash -java -jar openlatch-server/target/openlatch-server-1.0.0-executable.jar +java -jar openlatch-server-1.0.0-executable.jar +# (源码构建则位于 openlatch-server/target/openlatch-server-1.0.0-executable.jar) # 日志确认:OpenLatch server started: port=9410, ... metricsPort=9412 ``` diff --git a/docs/guide/zh/07-admin-console.md b/docs/guide/zh/07-admin-console.md index c09584b..1c7f599 100644 --- a/docs/guide/zh/07-admin-console.md +++ b/docs/guide/zh/07-admin-console.md @@ -7,11 +7,16 @@ ## 部署 +可执行 jar 从 [GitHub Releases](https://github.com/LamSpace/OpenLatch/releases) 下载,然后: + ```bash java -Dopenlatch.console.config=/path/to/console.properties \ - -jar openlatch-console/target/openlatch-console-1.0.0-executable.jar + -jar openlatch-console-1.0.0-executable.jar ``` +(本地源码构建则位于 +`openlatch-console/target/openlatch-console-1.0.0-executable.jar`。) + 与控制端同机部署的被观察节点也完全兼容(不同进程即可)。配置模板见仓库 `openlatch-console/console.properties.example`。 diff --git a/docs/guide/zh/10-compatibility.md b/docs/guide/zh/10-compatibility.md index cb2893e..128022d 100644 --- a/docs/guide/zh/10-compatibility.md +++ b/docs/guide/zh/10-compatibility.md @@ -9,7 +9,7 @@ | Spring Framework | 随 Boot 4(Framework 7) | starter 仅面向 Boot 4 应用上下文 | | 线路协议 | 服务端接受 **v1 / v2 / v3 / v4 / v5**(HELLO 协商,支持区间 [1,5]) | 区间外拒绝,不做隐式兼容 | | Micrometer | 宿主自备(不传递) | 注入 `MeterRegistry` 即启用客户端指标 | -| 中央仓库 | 已发布(1.0.0+) | 直接按 `io.github.lamspace:openlatch-*` 坐标使用,或本地构建 | +| 构件分发 | 客户端 SDK 链路(`openlatch-protocol` / `openlatch-client` / `openlatch-spring-boot-starter`)发布 Maven Central(1.0.0+);服务端与控制台可执行 jar 发布于 GitHub Releases | 客户端按坐标直接引入;服务端/控制台从 Releases 下载或本地构建 | ## 协议能力随版本累积 diff --git a/pom.xml b/pom.xml index 14028f3..0ab4c4c 100644 --- a/pom.xml +++ b/pom.xml @@ -234,8 +234,14 @@ default build (the javadoc jar is already produced and attached by build/plugins), then uploads via the Sonatype Central Portal. Publishing requires a `central` server entry in the active settings.xml (User Token) and an interactive GPG passphrase - prompt. openlatch-examples is excluded from the bundle via excludeArtifacts — - maven.deploy.skip is NOT honored by central-publishing-maven-plugin. --> + prompt. Publish scope is the client SDK chain only — the parent pom plus + openlatch-protocol, openlatch-client and openlatch-spring-boot-starter, i.e. exactly + the artifacts external consumers resolve by coordinates. The server and the console + are applications, distributed as executable jars attached to GitHub Releases, and + openlatch-core is excluded together with the server (no published artifact depends + on it); all three are kept out of the bundle via excludeArtifacts — maven.deploy.skip + is NOT honored by central-publishing-maven-plugin (same mechanism excludes the + never-published openlatch-examples). --> release @@ -283,6 +289,9 @@ false openlatch-examples + openlatch-core + openlatch-server + openlatch-console