插件接入点

插件包以 zip 文件形式分发,结构如下:

xx.name.zip
├── plugin.xml           ← 插件摘要信息
├── xx.name.plugin.jar   ← 插件源码编译产物
├── zz.jar               ← 第三方依赖(非 fine-xxx 开头)
└── yy.jar

plugin.xml 节点参考

plugin.xml 根节点为 <plugin>,支持以下子节点:

节点名 含义 默认值 备注
id 插件唯一标识符 全局唯一,不可重复
main-package 插件 class 的包名 com.fr.plugin 代码不在默认包下时必须声明
name 插件名称 显示在插件管理器和帆软市场
active 是否激活 no 不写则默认未激活,无法使用插件功能
hidden 是否在插件管理器中隐藏 no
version 插件版本号 每次更新需手动修改
env-version 适配的报表版本 一般为 10.0
app-version 适配的移动端版本 仅移动端插件需要
jartime 适配的 jar 版本(build 日期) jar build 日期需大于此值插件才能运行
vendor 插件作者
description 简要描述
change-notes 更新日志 建议倒序写,方便查看最近更新
extra-core 核心模块接口接入点
extra-decision 平台模块接口接入点
extra-schedule 定时调度模块接入点
extra-mobile 移动端模块接入点
extra-report 报表模块接入点
extra-form 决策报表模块接入点
extra-chart 图表模块接入点
extra-design 设计器模块接入点
extra-chart-design 设计器图表模块接入点
extra-analyse BI 模块接入点
function-recorder 插件功能点类接入点 详见插件功能点记录
lifecycle-monitor 插件生命周期类接入点 详见插件生命周期
prefer-packages 插件优先依赖目录 解决插件依赖 jar 与主工程 jar 冲突,子标签为 prefer-package
dependence 插件依赖信息
attributes 插件自定义属性
move-after-install 安装后执行的文件移动操作

dependence:插件间依赖

插件之间可以声明依赖关系。例如插件 A、B 都依赖插件 X:

<!-- 在 A 或 B 的 plugin.xml 中 -->
<dependence>
    <item type="plugin" key="com.test.x"/>
</dependence>

安装 A 或 B 时,系统会提示需要先安装插件 X。从帆软市场安装时会自动先安装依赖插件。


attributes:自定义配置属性

attributes 节点可存储插件的可变配置:

<attributes>
    <encode name="你好,世界"/>
</attributes>

在插件代码中通过上下文读取:

PluginXmlElement xml = PluginContexts.currentContext()
        .getXml()
        .getElement(PluginElementName.Attributes);

String name = StringUtils.EMPTY;
if (xml != null) {
    List<PluginXmlElement> children = xml.getChild("encode");
    if (children != null && !children.isEmpty()) {
        name = children.get(0).getAttribute("name");
    }
}
System.out.println(name);  // 输出:你好,世界

results matching ""

    No results matching ""