Skip to content

libs-java:platform-parent + BOM + starter-tenant,发布 GitHub Packages #1

@JIAQIA

Description

@JIAQIA

背景

主仓公共 Java 依赖治理。设计见 docs/00-主仓初始化-spec.md §3 与架构 05-多租户与控制平面 §5。

要回答的核心问题:子仓通过 Maven 坐标引用公共依赖(非 submodule 路径),所以工程师只 clone 子仓也能 mvn 构建——前提是能访问制品仓。

任务清单(DoD)

公共依赖(在父仓统一定义)

  • hashmatrix-platform-parent(pom):统一 Java 版本、插件管理、编译/质量门、profile(开源 / 信创)
  • hashmatrix-bom(pom):dependencyManagement 钉死开发框架版本(Spring Boot 家族 + 公共库)——各子仓"开发框架版本"的唯一来源
  • hashmatrix-starter-*:日志 / 审计 / 鉴权 / Web 基座;starter-tenant(多租户上下文 TenantContext,呼应架构 05 §5)
  • starter-test:统一测试栈(JUnit5 + AssertJ + Mockito + Testcontainers)+ Mock 数据工具 / fixtures 约定(脱敏占位 acme/tenant-demo)—— 各子仓"测试框架 + Mock 数据"的复用来源
  • CI 发布到 GitHub Packages(versioned 制品)
  • 子仓接入样例:<parent> + import BOM;验证只 clone 子仓 mvn -q -DskipTests package 通过
  • ⚠️ 内网/信创交付:制品镜像同步到内网 Nexus/Artifactory 的流程说明

发布 SKILL(主仓 .claude/skills/release-libs

  • 主仓自带 release-libs SKILL:一键 版本递增 → 构建 → 发布 parent/bom/starter-* 到 GitHub Packages(+ git tag + changelog)
  • 内网私服镜像同步步骤;幂等可重跑;发布前红线校验(制品/POM 无客户信息)

约束

  • 🔴 红线见 CLAUDE.md(公开仓,禁甲方信息,示例脱敏 acme/tenant-demo)。
  • 版本演进 = 主仓 CI 发布 BOM x.y.z,子仓改一行版本号升级。

关联:所有 Java 子仓脚手架(governance#2 / security#1 / tools-bi#1 / privacy#1 / data-foundation#1 / platform-common#1 / control-plane#1)经 Maven 坐标依赖本 parent+BOM+starter-*。

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions