
Spring Boot + Vue 前后端分离项目,Maven 自动打包整合
一、前言
现在各类项目为了降低项目、服务模块间的高度耦合性,提出了“前后端分离”,而前后端分离的项目该如何打包呢?
一般的做法是前端项目打包完,将打包文件手动复制到后端项目工程的src\main\resources\static目录下,再进行后端工程项目打包,这样手动来回复制、多次打包总是让人觉得麻烦。(即使采用Jenkins打包部署,也会存在上面2次打包过程)
为了解决上述问题,我特意查询了Maven build的相关配置及插件,发现解决上述问题,通过Maven自动打包整合其实不难,在此与大家进行分享。
二、前后端项目结构要求
以Spring Boot + Vue的向后端项目为例说明。
通过Maven构建项目,针对子父项目结构创建前端、后端工程,结构如下:
上述只罗列了关键的目录结构。
三、配置pom.xml文件
1、父工程的pom.xml文件
满足Maven 子父项目结构配置要求,配置 spring-boot-maven-plugin 插件。
2、Vue前端工程的pom.xml文件
对应Vue项目而言,pom.xml对它而言是不存在的,也是毫无意义的,此文件可以不要。在此体现出来,只是为了配置子父工程而已,凸显出Vue工程属于父工程的子工程而已,便于IDE导入呈现展示而已。
3、后端工程的pom.xml文件
该pom.xml文件是需要重点关注配置的,如下:
四、打包部署
上述的pom.xml配置,已经整合了前后端项目的Maven自动打包,打包时,只需关注后端项目(spring-boot子工程)打包即可,就会将前端、后端一起打包到后端成功中。
在子工程后端工程中,执行打包命令mvn clean package -Dmaven.test.skip=true, 或采用IDE中相应的Maven直接打包。
至此,只需一次打包,即可完成前后端项目的Maven自动打包了,再也不用担心多次打包、漏打包的情况。
本文为 InfoQ 作者【xcbeyond】的原创文章。
