在snowy框架中新增自定义模块
在snowy框架中新增一个自定义模块(或插件),需要遵循清晰的多模块项目管理规范,其核心思想是通过模块化分离,实现功能插件的独立开发、统一管理与集成.
一、项目结构与模块划分原则
snowy的插件体系采用“接口-实现”分离的架构
1、插件接口处(snowy-plugin-api/): 存放模块的API定义、DTO、枚举、常量等公共内容。此模块的职责是定义契约,不包含具体实现,可供其他模块依赖以调用接口。
2、插件实现从(snowy-plugin/):存放模块的业务逻辑、控制器、服务实现、Mapper、资源配置等具体实现代码。
3、主启动模块(snowy—plugin-app):作为最终的应用入口,负责集成和启动所有功能插件。
二、新增自定义模块“A”的详细步骤
假设新增的模块名为 a。
步骤1: 创建插件接口模块
在
snowy-plugin-api目录下,创建模块snowy-plugin-a-api编辑
snowy-plugin-a-api的pom.xml,必须引入公共核心模块snowy-common,以确保能使用框架的基础设施。1
2
3
4
5<!-- 位于 snowy-plugin-a-api/pom.xml -->
<dependency>
<groupId>vip.xiaonuo</groupId>
<artifactId>snowy-common</artifactId>
</dependency>在
snowy-plugin-api目录的父级pom.xml中,声明此子模块,以将其纳入统一构建。1
2<!-- 位于 snowy-plugin-api/pom.xml 的 modules 部分 -->
<module>snowy-plugin-a-api</module>
步骤2:创建插件实现模块
在
snowy-plugin目录下,创建模块snowy-plugin-a编辑
snowy-plugin-a的pom.xml,必须引入步骤1创建的自身API模块snowy-plugin-a-api,以实现对接口定义的依赖1
2
3
4
5
6<!-- 位于 snowy-plugin-a/pom.xml -->
<dependency>
<groupId>vip.xiaonuo</groupId>
<artifactId>snowy-plugin-a-api</artifactId>
<version>${project.parent.version}</version>
</dependency>在
snowy-plugin目录的父级pom.xml中,声明此子模块.1
2<!-- 位于 snowy-plugin/pom.xml 的 modules 部分 -->
<module>snowy-plugin-a</module>
步骤3:在主启动模块中集成插件
1、编辑主应用模块 snowy-web-app的 pom.xml,引入插件的实现模块 snowy-plugin-a。这是插件功能被实际加载到运行中的应用的关键步骤。
1 | <!-- 位于 snowy-web-app/pom.xml --> |
步骤4:在项目根POM中进行总声明(关键且易遗漏步骤)
1、编辑项目最顶层的根目录下的 pom.xml文件。
2、在 <modules>部分,添加新增的两个模块,确保它们能被Maven顶级构建正确识别和编译。
1 | <dependency> |
.png)



.png)