Maven环境下如何让独立Java Module被多个Spring Boot项目共享
可行实现方案
不需要让JM1继承任意一个Spring Boot项目的父POM,即可实现跨项目共享,以下是两种落地性最高的方案:
方案一:将JM1打包为独立公共依赖安装到本地Maven仓库
无项目耦合,适合上线/正式打包场景,操作步骤如下:
- 调整JM1的pom.xml配置:不需要绑定任何Spring Boot项目作为父项目,如果JM1需要用到Spring Boot相关依赖,用依赖导入的方式引入Spring Boot的依赖管理,避免继承父POM带来的绑定限制,配置示例:
<dependencyManagement> <dependencies> <!-- 导入Spring Boot依赖管理,和两个Spring Boot项目版本保持一致即可 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>替换为你使用的Spring Boot版本号</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
- 完成JM1的代码开发后,在JM1项目根目录执行
mvn clean install,将JM1打包安装到本地Maven仓库 - 分别在Proj-SB-1、Proj-SB-2的pom.xml中引入JM1的依赖,依赖坐标和JM1的pom中定义的groupId、artifactId、version完全一致即可
- Eclipse侧刷新:两个Spring Boot项目右键执行Maven -> Update Project,即可识别到JM1的依赖,后续修改JM1后重新执行install即可同步更新到两个项目。
方案二:Eclipse工作区直接关联
适合开发阶段频繁修改JM1的场景,不需要每次修改后执行install操作:
- 保持方案一中的JM1的pom.xml配置,不需要继承任何Spring Boot项目的父POM
- 分别打开Proj-SB-1、Proj-SB-2的属性配置页:右键项目 -> Properties -> Java Build Path -> Projects
- 点击Add按钮,选择工作区中的JM1项目,确认保存
- 切换到Maven配置页,勾选Resolve dependencies from Workspace projects,保存后执行Maven更新项目即可
- 该配置下JM1的代码修改会实时同步到两个Spring Boot项目,无需执行install操作。
注意事项:两个Spring Boot项目的Spring Boot版本尽量保持一致,避免JM1的依赖和项目依赖出现版本冲突;如果版本无法对齐,可在JM1的依赖声明中明确指定对应版本号规避冲突。
内容的提问来源于stack exchange,提问作者Prashant-M
相关产品推荐
相关产品推荐

