SpringBoot多模块化项目打包流程(单一启动类)
SpringBoot多模块化项目打包流程(单一启动类)
(单一启动类项目打包)
一、首先,我们配置每个模块的打包方式
1、父项目打包配置(就是打包方式为pom的项目)
为父项目添加如下项目
即添加如下依赖:
org.springframework.boot spring-boot-maven-plugin
2、包含启动类的项目模块的打包配置(配置启动类)
配置启动类打包(这是一个单一启动类的多模块项目)
即在启动类的模块的pom.xml文件里添加如下配置:
注意:mainClass标签里面的内容为自己项目的启动类的类路径
org.springframework.boot spring-boot-maven-plugin 3.3.4 com.hangyuli.App repackage
3、不包含启动类的项目模块进行打包配置
对于没有启动类的模块打包配置,我们需要skip标签进行配置:
标签解释:
在某些情形下,你可能仅需编译项目,而不需要打包成可执行的 Spring Boot 应用程序。比如在进行单元测试,或者仅想检查代码能否正常编译时,就无需生成可执行的 JAR 或 WAR 文件。此时可以把 设置为 true。
配置无启动类的模块:
加入如下代码即可:
org.springframework.boot spring-boot-maven-plugin true
剩下的几个项目模块都不包含启动类,打包方式跟第三个一样。
(补充)
其实完成上面的步骤后我们已经可以用maven命令进行打包了,我们找到启动类模块的maven的package命令点击。
打包截图如下:
我们找到该文件夹查看:(打包成功)
完成上面的过程后我们可以直接进行第三步的测试,不需要进行第二步(按步骤进行打包)操作。
下面的步骤(按步骤进行打包)是我在看bilibili多模块项目(单一启动类)打包视频时所记录,确实可行,但是有点麻烦,并且每个模块都进行了打包,然后我回过来直接在启动类模块运行package命令,然后进行运行,发现也可用测试成功。下面的命令用的是install,他会将生产的包文件安装到Maven本地仓库。
package和install命令的区别:
- package 命令主要用于生成项目的包文件,适用于本地测试和简单集成。
- install 命令在 package 的基础上,还会将生成的包文件安装到本地 Maven 仓库,方便其他本地项目引用。
二、按步骤进行打包
1、首先对父项目进行install一下:
2、根据依赖关系进行子模块打包
解释一下上面的图片的项目模块的依赖关系:
dataPlatformModuleSystem模块:是该项目所以模块的父模块。
common模块:是公共的一些配置模块,除了父模块的其他模块都依赖它,所以它最先进行打包操作。
dataStandardsManagement模块:只依赖于common模块。需要等common模块打包好后在打包。
dataAssetManagement模块:只依赖common模块。需要等common模块打包好后在打包。
dataSourceManagement模块:只依赖common模块。需要等common模块打包好后在打包。
scriptManagement模块:只依赖common模块。需要等common模块打包好后在打包。
webInterface模块:除了父模块之外都依赖。所以它要等除了父模块之外的模块打包好后在打包。
注意:模块与模块之间没有依赖的话,顺序可用随意。
下面我们将进行打包:
为什么先打包common:
因为我们我们的其他模块在使用的时候需要用到common模块,如果我们没有先对common进行打包,我们其他模块在打包的时候就找不到common,就会出问题。
首先进行对common的公共模块进行打包操作:
点击install进行打包
然后是依赖于common的四个模块:(分别点击每个模块的install)
这里就只演示一个:
**最后是启动类模块的打包:**也就是webInterface模块。
下面是我们打包成功的图片:
我们根据地址来查询一下是否真的成功打包:
可用看到,已经成功打包。
三、通过java -jar 命令进行启动该java包
我们进行该包的文件夹:
在搜索栏上面输入cmd,点击回车键(enter)进入命令面板
输入Java -jar 以及该包的名字(带后缀)
点击回车按钮启动:
然后我们通过我们8080端口访问我们的swagger页面:(成功访问)
如此打包就完成了。
我们就可用将该包用到其他地方进行部署了。