Skip to content

Releases: dhslegen/base-code

v0.8.2

Choose a tag to compare

@github-actions github-actions released this 28 Jul 07:55

Changelog

  • fed1a95 docs: v0.8.2 发布说明
  • 544e0d2 fix: cask 清除 quarantine 改在 preflight,消除补全生成的三条警告

v0.8.1

Choose a tag to compare

@github-actions github-actions released this 28 Jul 07:25

Changelog

  • 7e31e64 docs: v0.8.1 发布说明
  • aca172d fix: init 成功提示并列给出内联 flag 这条路,不再只引导编辑配置文件

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 27 Jul 09:42

Changelog

  • e3d715d docs: v0.8.0 发布说明(含未单独发版的 v0.7.0 包映射)
  • d003525 feat: 支持 base-code --version,版本号由构建期 ldflags 注入
  • f4f5426 refactor: 抽出 validateMapping 骨架,消除两个映射校验的逐行重复
  • 9f2d91d refactor: 清掉 mapper-xml 的死 NameSuffix,并写明 Resource 层为何留空
  • 6b7058d fix: 映射 flag 的 CSV 重复键报错,不再静默后覆盖前
  • 4170a12 test: 守护模板里的 Cls/Pkg 键合法,堵住 golden 抓不到的键错误
  • d042f27 fix: Generate 入口校验各层类名两两互异,拦下 class-mapping 撞名
  • 228803a fix: 映射类 flag 传空串视为未提供,不再静默清空配置文件的映射
  • 2abbb0f fix: package-mapping 包段拒绝 Java 保留字(补回 Layers 常量时代白送的不变量)
  • 76e5aff docs: init 模版与 README 增补 class-mapping 类名映射说明
  • 9700328 refactor: 模板类名全部改经 Cls 出口,映射贯通类声明/泛型/import/XML
  • 380c178 feat: generator 引入 ClassName 类名唯一出口,OutputPath 文件名走类名映射
  • 10d32ca feat: gen 命令支持 --class-mapping flag(CSV 解析器泛化为双映射共用)
  • 752382a feat: config 支持 class-mapping 类名映射(13 层名键 + {} 占位符校验)
  • fe643c2 docs: init 模版与 README 增补 package-mapping 包映射说明
  • ea30330 feat: dry-run 层标记行输出目标落盘路径
  • d9c7c82 refactor: 模板包名全部改经 Pkg 出口,映射贯通 package/import/XML namespace
  • 4eb592a feat: generator 引入 Pkg 包名唯一出口与 OutputPath 包映射(含键一致性守护测试)
  • 2121d1b feat: gen 命令支持 --package-mapping flag(CSV 键值对,整体覆盖配置文件)
  • 03dee8a feat: config 支持 package-mapping 包映射(11 合法键 + 值校验 + flag 整体覆盖)
  • 1d0eb84 test: 增加全 14 层渲染 golden 基准,冻结默认产物
  • 733b3a1 docs: v0.6.0 发布说明

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 21 Jul 01:32

v0.6.0 发布说明

亮点:base-code init 一键生成配置模版

从零手写 base-code.yaml 门槛高——改是容易的。新命令在当前目录生成教学型全量模版:

base-code init    # 生成 ./base-code.yaml(已存在时报错,--force 覆盖)
  • 必填三项已填可运行示例值tables / base-package / datasource.database
  • 其余配置全部以注释列出并标注约定默认值——需要什么就取消注释改什么
  • 编辑后直接 base-code gengen 默认读取 ./base-code.yaml,无需 --config

三步上手:init → 编辑 → gen

其他改进

  • 缺参报错在原有「可复制内联命令样例」之外,追加第二条自救通路提示:「也可先执行 base-code init 生成配置模版」。
  • 模版有效性由测试机械把关:产出文件必须能通过真实配置加载与必填校验,未来配置演进不会让模版悄悄失效。

兼容性

纯新增命令,gen 行为无任何变化。

升级

brew update && brew upgrade base-code   # macOS / Linux
scoop update base-code                  # Windows

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 21 Jul 00:55

v0.5.0 发布说明

亮点:必填校验下沉至「合并后生效配置」

必填不再是 flag 层面的概念。tablesbase-packagedb-name 三个必填项由 flag 与配置文件合并后的生效值统一裁决——任一来源提供即可(flag 优先),命令行层面彻底没有必填限制。

tables 首次获得配置态

base-code:
  tables: [sys_user, sys_role]   # 列表形态;--tables(CSV)显式提供时整体覆盖
  base-package: com.example.demo
  datasource:
    database: demo

配置文件写全三个必填项后,可零 flag 直接执行

base-code gen --config base-code.yaml

行为变化

场景 v0.4.x v0.5.0
配置文件含 tables,命令行不传 --tables cobra 报 required flag(s) "tables" not set,配置永远无法生效 正常生成
flag 与配置文件都缺 tables cobra 解析层报错 合并后校验报「缺少必填配置:--tables」,附可复制的最短命令样例
--tables 与配置文件同时提供 仅 flag 生效(配置态不存在) flag 整体覆盖文件值(与其余配置项的覆盖语义一致)

兼容性

  • 既有用法完全兼容:继续用 --tables 内联传表名的命令无任何变化。
  • 无破坏性变更;报错文案从 cobra 英文错误变为中文「缺少必填配置」提示(面向 agent 自修复)。

升级

brew update && brew upgrade base-code   # macOS / Linux
scoop update base-code                  # Windows

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 20 Jul 10:23

base-code v0.4.0 — CLI 专业化改版

本版对命令行界面做了一次面向「专业、简洁、agent 友好」的重构。包含破坏性变更,升级前请阅读迁移说明。

⚠️ 破坏性变更(升级必读)

1. 默认不再生成 API 层(14 层 → 6 层)

这是静默的行为变化,最需注意。 v0.3.x 默认生成全 14 层;v0.4.0 默认只生成 6 层后端核心

po  mapper  mapper-xml  service  service-impl  query

不再默认生成的 8 层:apiapi-implconverterreq-dtoresp-dtoquery-req-dtopage-query-req-dtoupdate-by-query-req-dto

原因:DTO 五层与 converter 只被 api/api-impl 消费;不生成 API 层时它们没有消费者,属于死代码。默认砍掉使产物自洽。

恢复全 14 层(二选一)

  • 命令行加 --with-api
  • 或配置文件加顶层键 with-api: true

老用户既有 base-code.yaml 不含 with-api 键,升级后默认只出 6 层。若你的工程依赖 Feign/DTO 层,务必加上 with-api: true,否则会缺文件(表现为编译期找不到 XxxApi/XxxReqDto)。

2. Flag 改名(旧名已删除)

旧 flag(已删) 新 flag 说明
--without-api --with-api 语义反转:旧的「不要 API」→ 新的「要 API」,缺省 false
--only-table-modify --sync-schema 改表后同步受影响层
--service-name --api-service-name @FeignClient 服务名
--base-path --api-base-path API 基础路径前缀

旧名会响亮失败unknown flag),据此更新脚本即可。

3. 必填项收缩为 3 项

现在仅 --tables--base-package--db-name 必填。其余连接参数有约定默认值(见下),缺失时给出可复制的三参最短命令样例。

✨ 改进

连接参数约定默认值下沉

参数 默认值
--dialect mysql
--db-host 127.0.0.1
--db-port 按方言派生(mysql 3306 / postgresql 5432)
--db-user root
--db-password
--output-root ./src/main/java

本地开发最短命令:

base-code gen --tables it_user --base-package com.example.hello --db-name hello-mysql

优先级不变:显式 flag > 配置文件 > 约定默认值。配置文件里的显式值不会被这些默认值覆盖。

帮助文本对标 openapi-generator

base-code gen --help 现按语义分组(生成目标 / 数据库连接 / API 层 / 生成行为),每个 flag 标注真实默认值,并附 4 条典型场景示例。

📌 --sync-schema 的层集合说明

--sync-schema 只重新生成「受表结构影响」的层,且与 --with-api 的取值联动:

  • 默认(API-less 工程):pomapper-xmlquery3 层
  • --with-api(含 DTO 的工程):加上 req-dtoresp-dtoquery-req-dto6 层

注意:若你的工程用 --with-api 生成过 14 层,日后单跑 --sync-schema 请同样带上 --with-api,否则 DTO 层不会被刷新而可能过期。

安装 / 升级

brew upgrade base-code        # Homebrew
scoop update base-code        # Scoop
go install github.com/dhslegen/base-code@latest

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 20 Jul 06:02

Changelog

  • 0bc64a3 docs: TUTORIAL 同步 Overrides/LoadWithOverrides 与内联 flag
  • cb3f66b fix: validate 补 --dialect 必填项,报错保持 agent 自修复通道
  • e85216e docs: README 增加一行命令(内联 flag)用法
  • 8076d56 feat: gen 命令支持全量内联配置 flag,无配置文件一行直达
  • d45054f fix: 显式 --db-port 0 不被方言派生覆盖,gofmt 测试文件
  • 652c036 feat: config 支持内联覆盖 LoadWithOverrides,必填校验含 agent 友好样例

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 20 Jul 03:17

Changelog

  • 5302194 feat: brew 安装自动装 shell 补全,README 补全指引改为标准 fpath 位置

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 16 Jul 06:54

Changelog

  • 3d56e34 docs: 删除工程级前置依赖声明(已自包含),补 api 配置说明
  • f8eda35 feat!: api 层自包含——内联 ApiConstants 值、pageAll 改双参数消除 PageQueryReqDto
  • 9cb8c7f feat(generator): TemplateData 透传 ServiceName/BasePath
  • a13abc4 feat(config): 新增 api.service-name / api.base-path,缺省从 base-package 末段派生
  • 3216b43 docs: README 添加 release/license/go/platform 徽章

v0.1.3

Choose a tag to compare

@github-actions github-actions released this 16 Jul 01:41

Changelog

  • 397cafa fix: scoop manifest 落到 bucket/ 子目录(新版 scoop 惯例)