<
parent
>
<
groupId
>
org.springframework.boot
</
groupId
>
<
artifactId
>
spring-boot-starter-parent
</
artifactId
>
<
version
>
2.2.4.RELEASE
</
version
>
<
relativePath
/>
</
parent
>
<
groupId
>
com.ybj
</
groupId
>
<
artifactId
>
my-app
</
artifactId
>
<
version
>
0.0.1-SNAPSHOT
</
version
>
<
name
>
my-app
</
name
>
<
description
>
springboot多项目
</
description
>
<
packaging
>
pom
</
packaging
>
<
dependencies
>
<
dependencyManagement
>
modules标签
这个标签管理的是被聚合的模块
当新建子模块时,modules会自动添加单个的module标签
父模块启动类,是整个模块的启动类
所有的请求都走父模块的端口
为了使子模块的服务也能启动,需要在父模块启动类上加入注解
@ComponentScan(basePackages = {"com.ybj.*",})
复制代码
2.子模块
1.创建子模块
选择Module
选择maven项目
输入具体信息
2.pom
packaging标签
这里可以选择jar或者war
指定打包方式
parent
子类pom中的parent自动指向了父类的GAV
子类会自动引入父类pom中
dependencies
的中依赖项
<parent>
<artifactId>my-app</artifactId>
<groupId>com.ybj</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
模块间依赖
需要依赖某个模块,可以在pom中声明
这里的依赖是从本地仓库下载的,不是远程仓库
Maven Helper插件
在idea中安装maven helper插件
点击pom文件,选择 Dependency Analyzer
即可查看并搜索依赖项,这对于解决依赖冲突很有帮助
方式1:聚合模块直接打包
在聚合模块打包,会自动计算依赖顺序,依次打包
依次执行 clean 与 install
maven会自动计算构建顺序
方式2:使用插件
方式1的问题就是耗费时间长, 因为是全部打包,
所以就需要实现单个模块打包
这里需要借助spring-boot-maven-plugin插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.0.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
复制代码
5. 常见问题
因为子类会继承父类的依赖项,所以可能 导致依赖冲突,从而使项目无法启动。
这里可以使用maven helper插件进行冲突的排查
- 5708
-
WaterMin
Spring Boot
- 134
-