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