打包包含多个子模块的springboot的方法
- 在最外层的父模块的pom文件中需要加入
<packaging>pom</packaging>
- 在有启动类的模块的pom文件中需要添加
spring-boot-maven-plugin
插件。
在实际项目中,一般会有xxx-common
模块,用于抽象通用类,提供工具类等,这种模块并没有启动类,一般是被实际的业务模块所依赖,在这种没有启动类的模块中不能添加spring-boot-maven-plugin
插件,否则打包时会报错。同理,最外层的父pom中也不能添加spring-boot-maven-plugin
插件。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
- 打包时,需要在父pom中打包,该操作会打包该父模块中的所有子模块。也可以对每个模块单独打包,但是要注意,如果有模块A依赖了模块B,那么在单独打包模块A时,maven会去仓库中找模块B,但是仓库中没有模块B,所以在单独对A进行打包时会失败。
- 单独打包的办法:使用
maven:install
,先把没有依赖其他模块的模块打包安装,该操作会把该模块安装到本地maven仓库。之后再maven:package
打包其他模块时,maven就能够在仓库中找到被依赖的模块。