Norm 0.21
Norm 0.21 默认使用 GraalVM Native Image 构建应用,并提供共用的执行图裁剪、Java 直接调用链接和构建证据。
本机应用构建
norm build web.norm 保持单文件输出约定,默认生成本机应用。运行时不展开 JVM,也不要求安装 Norm 或 Java。norm setup 准备经过 SHA-256 校验的固定 Native 工具链;未执行 setup 时首次构建使用同一安装入口。
构建输出阶段进度、耗时和体积。命令、交付目录和构建依赖见应用构建。
0.21.4 工具链与生态边界
应用示例与框架验收在 examples 和各适配包仓库维护。编译器仅提供通用 Java 与 Native Image 集成;Hibernate Native 配置由 orm.hibernate@3 携带。使用 ORM Native 应用时将 orm.hibernate、orm.micronaut、orm.micronaut.tx 的显式版本升级到 3。
发行先打包、最后集中验收;日常 CI 不构建框架应用,体积门禁由独立手动工作流提供。入口见发布流程。
0.21.2 单文件交付
Windows Native 应用将所需动态库封装进一个 EXE,运行时按内容摘要展开到用户缓存,不展开 JVM。构建临时目录在结束后清理,可复用缓存与体积摘要集中保存;完整构建证据通过 --diagnostics 保留。
标准库提供 std.application.applicationDirectory(),对应入口源码或对外交付的可执行文件所在目录,不受启动工作目录影响。micronaut.web@4 使用此能力:数据库默认位于内存,显式选择文件库但未指定路径时位于应用目录。配置见单文件 Web 示例。
共用运行架构
- JVM 与 Native 共用执行入口选择,裁剪未使用的函数和构造器,保留反射及框架外部入口。
- Java 直接调用与参数、返回值转换预先链接;Native 在构建阶段完成准备。
- 编译工具链与应用 Java 依赖使用统一选择结果,并检查合并制品的物理所有权。
- 体积验收同时记录 EXE 与完整运行交付,不把所需动态库排除在交付统计之外。
CI 体积基线
0.21.1 支持默认分支首次验收后的自动基线初始化。基线独立于临时诊断附件持久保存;PR 只读,重置需要明确原因并保留历史。预算、输入核对与操作入口见应用构建。
边界与迁移
Native 构建需要本机工具链,首次准备和编译比 JVM 启动路径更耗时。Windows 只需分发生成的 EXE;其他平台仍须一起分发构建输出列出的运行文件。默认行为及 JVM 构建选项见应用构建文档。
Micronaut Web/ORM 已覆盖 HTTP、DI、校验、数据库提交、读回与回滚;这不代表所有 Java 框架路径均已验证。历史偶发校验器初始化失败的根因尚未关闭。构建输入报告不是完整可重放环境,体积可能随构建波动;不承诺所有应用获得相同缩减比例。
Windows 与 macOS 发行物尚未代码签名,系统可能显示来源警告。