编辑 | blame | 历史 | 原始文档

插件总则

  • 插件源码、文字、图片等内容请确保没有侵权
  • 插件内请勿附带任何形式的广告文字或链接
  • 插件不可包含远程执行程序(包含远程下载)
  • 插件必须提交一个包含全部源码的版本进行上架
  • 插件只可在官方市场销售,否则将予以下架处理
  • 插件发布后请提供给用户完整的操作手册
  • 插件需要定期更新维护并给用户给予插件问题的答疑
  • 插件开发完毕请尽快申请软件著作权以保护自己的版权
  • 插件若最终被判定有侵权责任,需要由插件作者全权承担

插件命名与目录

  • 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新增入字典表从而产生耦合
  • 目前还没有做插件安装的工具,前期请大家把每个项目目录归好类,方便让用户根据提示复制到对应目录

插件构建流程

  • 比如现在需要写一个支付模块,介绍下各个流程
  • 主服务项目放到bladexblade-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目录下
  • bladexbladex-boot业务类型的包名为org.springblade.plugin.paybladex-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名便可