插件注册和配置
在 Halo 插件开发中,plugin.yaml 是用于定义插件基本信息和配置的核心文件。
一个典型的 plugin.yaml 文件如下所示:
字段详解
spec.version 由构建过程写入
Halo 的 Plugin Schema 要求最终安装包中的 spec.version 为完整的 SemVer 版本号。使用官方 Halo Gradle 插件时,源文件可以省略此字段;构建过程会读取 Gradle 项目版本,并将其写入构建产物中的 plugin.yaml。请不要手动修改构建目录里的副本。
settingName 需要对应资源
如果在 plugin.yaml 中配置了 settingName,但没有提供对应的 Setting 资源文件,插件将因为找不到 metadata.name 与 settingName 一致的 Setting 而无法启动。
从 @halo-dev/ui-plugin-bundler-kit@2.26.0 开始,spec.requires 也用于自动选择 UI 构建格式。支持的推导写法和回退行为请参考 UI 构建 > 输出格式与 Halo 目标。
插件运行模式
Halo 插件可以在两种模式下运行:deployment(默认)模式和 development 开发模式。
deployment模式:标准的插件发布流程,插件打包成 JAR 文件后部署到 Halo。这是插件的生产运行模式。development模式:适用于插件开发阶段,开发者可以在无需打包和部署的情况下直接运行和调试插件,极大地提升了开发效率。
配置运行模式
要配置插件的运行模式,可以在 Halo 的配置文件中进行以下设置:
以 deployment 模式运行插件
默认情况下,Halo 以 deployment 模式运行插件,无需特别配置。如果需要明确指定,可以参考以下配置:
参考 传统方式运行
以 development 模式运行插件
在开发过程中,可以将 runtime-mode 修改为 development,并通过 fixed-plugin-path 指定插件的绝对路径,支持多个路径配置:
development 模式的插件加载方式
development开发模式下,既可以运行fixed-plugin-path下的插件,也可以运行通过Console管理端安装的 JAR 格式的插件。- 如果使用 DevTools 运行方式 来开发插件,则不需要配置
runtime-mode和fixed-plugin-path。
常用的 SemVer Range Expressions
- 常规符号:
>、>=、<、<=、=、!= - 通配符范围 (
*|X|x):1.*解释为>=1.0.0 && <2.0.0 - 波形符范围 (
~):~1.5解释为>=1.5.0 && <1.6.0 - 连字符范围 (
-):1.0-2.0解释为>=1.0.0 && <=2.0.0 - 插入符范围 (
^):^0.2.3解释为>=0.2.3 && <0.3.0 - 部分版本范围:
1解释为1.x或>=1.0.0 && <2.0.0 - 否定运算符:
!(1.x)解释为<1.0.0 && >=2.0.0 - 带括号的表达式:
~1.3 || (1.4.* && !=1.4.5) || ~2
更多详细信息请参考SemVer Range Expressions