概述
Fess 的插件系统允许您扩展核心功能。 插件以JAR文件形式分发,并动态加载。
插件类型
Fess 支持以下类型的插件:
| 类型 | 说明 |
|---|---|
| 数据存储 | 从新数据源获取内容(Box、Slack等) |
| 脚本引擎 | 支持新的脚本语言 |
| Web应用 | 扩展Web界面 |
| Ingest | 索引时的数据处理 |
插件结构
基本结构
pom.xml示例
插件注册
DI容器注册
插件在 fess_ds.xml 等配置文件中注册:
自动注册
许多插件使用 @PostConstruct 注解自动注册:
插件生命周期
初始化
JAR文件被加载
DI容器初始化组件
调用
@PostConstruct方法插件注册到管理器
终止
调用
@PreDestroy方法(如果定义)清理资源
依赖关系
与Fess本体的依赖
外部库
插件可以包含自己的依赖库:
依赖库与插件JAR一起分发, 或使用Maven Shade Plugin创建fat JAR。
获取配置
从FessConfig获取
构建和安装
构建
安装
从管理界面:
“系统” -> “插件” -> “安装”
输入插件名称进行安装
命令行:
手动:
将JAR文件复制到
plugins/目录重启 Fess
调试
日志输出
开发模式
开发时可以从IDE启动 Fess 进行调试:
以调试模式运行
FessBoot类将插件源代码包含在项目中
设置断点
公开插件列表
Fess 项目公开的主要插件:
| 插件 | 说明 |
|---|---|
| fess-ds-box | Box.com连接器 |
| fess-ds-dropbox | Dropbox连接器 |
| fess-ds-slack | Slack连接器 |
| fess-ds-atlassian | Confluence/Jira连接器 |
| fess-ds-git | Git仓库连接器 |
| fess-theme-* | 自定义主题 |
这些插件在 GitHub 上公开,可作为开发参考。