插件总则
- 插件源码、文字、图片等内容请确保没有侵权
- 插件内请勿附带任何形式的广告文字或链接
- 插件不可包含远程执行程序(包含远程下载)
- 插件必须提交一个包含全部源码的版本进行上架
- 插件只可在官方市场销售,否则将予以下架处理
- 插件发布后请提供给用户完整的操作手册
- 插件需要定期更新维护并给用户给予插件问题的答疑
- 插件开发完毕请尽快申请软件著作权以保护自己的版权
- 插件若最终被判定有侵权责任,需要由插件作者全权承担
插件命名与目录
- BladeX的业务项目请以
blade-xx 为前缀,包名请以 org.springblade.plugin.xx 命名
- BladeX内的功能请放到与
blade-ops同级的 blade-plugin 目录下,api包请放到 blade-plugin-api 目录下
- BladeX-Boot内的功能放到
org.springblade.plugin.xx 目录下
- BladeX-Tool内的项目请命名为
blade-plugin-xx 的形式
- BladeX-Tool的核心封装项目包名请以
org.springblade.core.plugin.xx 命名
- Saber内的相关页面请放到
/src/views/plugin 目录下
- Saber内的API调用包请放到
/src/api/plugin 目录下
- 若有Sword部分内容,目录逻辑同理
- Sql脚本新增的表名请以 blade_xx 命名,若有后台管理功能,请新增新的菜单,与用户管理同级
插件注意点
- 插件要做到便捷插拔的目的,不要与BladeX有任何耦合
- 若有starter类型的封装,请采用BladeX风格的自动装配逻辑,用config类初始化,用
blade.plugin.xx.enabled=true配置开启功能。具体写法可参考blade-starter-social
- 一些constant类、util类请放到
blade-xx 以及 blade-xx-api 包内,不要放入blade-common内
- 若有相关字典配置的情况,如果数量不多,尽可能在插件项目内用枚举,不要将sql新增入字典表从而产生耦合
- 目前还没有做插件安装的工具,前期请大家把每个项目目录归好类,方便让用户根据提示复制到对应目录
插件构建流程
- 比如现在需要写一个支付模块,介绍下各个流程
- 主服务项目放到
bladex与blade-ops同目录的blade-plugin下,命名为blade-pay
- 与
blade-plugin同目录的blade-plugin-api目录放入blade-pay-api
- 一些工具包,entity,constant类都可以放到
blade-pay-api,被blade-pay引入便可以使用
- 在
bladex-tool下新增blade-plugin-pay的starter封装,新增config、prop、util类,以blade.plugin.pay.enabled=true开启
- 如果是
bladex-boot工程,则将对应的源码都放入org.springblade.plugin.pay目录下
bladex与bladex-boot业务类型的包名为org.springblade.plugin.pay,bladex-tool核心封装类型的包名为org.springblade.core.plugin.pay
- 数据库表名定义为
blade_pay,同时新增对应菜单到blade_menu,将菜单设置和用户管理同级,最终创建一个Sql脚本
- 以
saber为例,在/src/views/plugin目录下新增pay.vue,在/src/api/plugin目录下新增pay.js
- 最终开发完毕,整理出
bladex、bladex-boot、bladex-tool、saber的文件夹,内部只包含自己开发的源码,提供一个文档指引用户到指定目录直接覆盖,随后指导用户在pom处新增新模块的modules名便可