背景
最近新建了一个Maven工程,里边主要有3子工程,其中2个是可以独立部署的,所以都创建为SpringBoot工程,其中1个是公共Service的工程,故为常规的Maven工程。
我们都知道SpringBoot工程,本身就继承SpringBoot的parent工程,而不是继承图中的Maven父工程,但是我们就是要SpringBoot子工程继承图中Maven父工程,如何处理这一问题呢?
方案
方案其实很简单,就是让Maven父工程继承SpringBoot的parent工程,而SpringBoot工程再继承Maven父工程即可,无需继承SpringBoot的parent工程,就可以达到想要的独立部署的效果。
1.Maven父工程
我们在其pom配置中,
- 加入parent模块,内容为SpringBoot的parent工程。
- 加入modules模块,内容为3个子工程。
- 将packaging指定为pom。
如此便完成Maven父工程的依赖配置。
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.6.6
org.example
multi-springboot
1.0-SNAPSHOT
pom
client
service
server
8
8
2.SpringBoot子工程
两个SpringBoot的子工程的pom配置一样,选其中一个作为案例,
- 将parent配置改为maven父工程。
- 将packaging指定为war
其中也可以加入公共工程的依赖,使用其提供的服务。
4.0.0
org.example
multi-springboot
1.0-SNAPSHOT
client
0.0.1-SNAPSHOT
war
client
client
1.8
org.example
service
0.0.1-SNAPSHOT
compile
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin
3.Maven子工程
平平无奇,就一个简单的maven工程,主要改动点如下:
- 将packaging指定为jar。
4.0.0
org.example
multi-springboot
1.0-SNAPSHOT
service
0.0.1-SNAPSHOT
jar
service
service
1.8
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin
其他
本案例的代码,已经上传到github了,需要的同学,可以自行下载查阅:
https://github.com/larger5/multi-springboot