Skip to content

feat!: 重构为 Maven / Gradle 通用 Java 源码运行器 - #3

Merged
Vanisper merged 26 commits into
masterfrom
feat/open-source-cli
Oct 5, 2026
Merged

Vanisper merged 26 commits into
masterfrom
feat/open-source-cli

Conversation

@Vanisper

@Vanisper Vanisper commented Oct 5, 2026

Copy link
Copy Markdown
Owner

为 Maven 与 Gradle 源码工作区提供统一的开发启动入口:选择一个项目和主类,由构建工具准备运行产物,再启动独立 Java 进程。普通 Java 与 Spring Boot 等 classpath 应用使用同一套命令;模块、入口和启动参数可以通过 init 保存,供后续运行复用。

主要变更

  • 建立 run、init、plan、help、version 命令,区分构建参数、JVM 参数和应用参数,严格校验 .java-run.json 及 CLI 覆盖规则。
  • 支持多模块和多个 main 的终端选择;非交互环境通过参数或配置明确目标。初始化与运行共用准备和入口解析,配置写入保护已有文件,失败或取消时保留原配置。
  • Maven 使用有效模型和 reactor 准备,Gradle 使用 source set、任务图及 Java toolchain;运行类路径限定到选定目标,测试输出和依赖按需启用。
  • 按 CLI、构建适配、运行核心和进程管理组织源码,处理 Manifest 类路径、参数编码、退出码、信号转发与进程树清理。
  • 统一编译目标和发布平台清单,提供 Windows x64、Linux x64 / arm64、macOS x64 / arm64 五种 ZIP。编译生成二进制校验文件,包内附安装指南,汇总生成 ZIP 的 SHA256SUMS;标签发布使用通过原生验收的产物。
  • 整理使用、安装、架构、贡献和技术路线文档,提供可运行的双 main 示例及 Maven / Gradle 验收夹具。

命令与运行边界

这是一次 CLI 命令接口变更,调用脚本需采用 README 中的新命令及选项。默认执行 run 并自动准备产物;--build=none 使用已有产物,plan 提供无构建副作用的静态预览。

运行模型支持 Maven jar、Gradle Java 项目和传统 public static void main(String[])。框架配置通过 JVM 或应用参数传递;依赖自定义原生运行任务副作用的项目仍需使用对应任务。Maven reactor 自动准备会执行本地 install,Windows 参数需能由实际 JDK 的原生命令行编码完整表示。

标签发布校验 SemVer、标签与包版本一致性及许可证文件;分支演练保存验收产物和说明预览。

验证

以下结果均对应提交 dc95699:

  • Check 六组矩阵通过:Ubuntu、macOS、Windows × JDK 17 / 21,覆盖类型检查、回归测试、本机二进制编译和完整 Maven / Gradle 运行验收。
  • 五平台发布演练通过:JDK 21 完整运行验收、JDK 17 实际 ZIP 解包启动、包内文件与二进制校验,以及五份 ZIP 汇总校验。Unix 平台各通过 25 项 full / 12 项 quick,Windows 通过 27 项 full / 14 项 quick。
  • 本地类型检查与回归:138 通过、5 项 Windows 专用用例跳过、0 失败;完整二进制验收 25 项和 JDK 17 解包验收 12 项通过。
  • 文档本地链接、锚点及差异格式检查通过。

统一自动准备、单模块类路径、主类发现、项目配置与终端补选,按职责组织源码并验证退出、信号和特殊路径。

BREAKING CHANGE: 以 run、plan 和严格长选项替代 start、-c、active=、local、no-run 与旧缓存操作。
用隔离 Maven / Gradle 夹具验收本机二进制、参数、测试作用域、资源与依赖变更;配置三种系统与两种 JDK 的原生检查,发布前检查并生成 SHA-256。
说明模块与主类交互、参数分层、目录职责、旧 CLI 迁移和技术路线,记录完整 smoke 及 java-template 隔离启动结果。
保留 macOS JDK 17 的 NFD 主类验收,避免源文件名规范化干扰;以 UTF-8 请求和 ASCII 代理任务传递 Gradle 路径,归一化 Maven 模型输出,并在 Windows JDK 原生编码无法表示参数时提前报错,防止静默替换。

补充 Windows 进程树和参数能力验收;本机回归、双 JDK Gradle 验证与完整二进制 smoke 通过。
@Vanisper
Vanisper merged commit e70b17a into master Oct 5, 2026
21 checks passed
@Vanisper
Vanisper deleted the feat/open-source-cli branch October 5, 2026 22:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant