springbot+vue项目的打包部署

springbot+vue项目的打包部署

使用vue进行前后端分离式开发,但最终部署还是要将前端放到后端中统一部署。

一、打包

1.前端打包

(1)流程

通常,我们的前端是在 VsCode 中开发的,如果想要打包,只需要 ctrl+shift+U 调出命令行;然后输入

npm run build

 

之后在项目中会自动生成一个 dist 文件夹,只需要将里面的所有文件直接 copy 到Springboot项目的 static 中就可以了;

(2)问题

1.vue 打包部署后, 除了主页,其他页面刷新就会404 not found,并且 接口请求 也是 404

问题原因:除了主页页面,其他刷新404 

vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。

如果不想要很丑的 hash,我们可以用路由的 history 模式,这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面。

当你使用 history 模式时,URL 就像正常的 url,例如 http://yoursite.com/user/id,也好看!

不过这种模式要玩好,还需要后台配置支持。因为我们的应用是个单页客户端应用,如果后台没有正确的配置,当用户在浏览器直接访问 http://oursite.com/user/id 就会返回 404,这就不好看了

解决方法:

去router的index文件中把mode:history注释掉

2.后端打包

把 dist 中的内容 copy 到 static 里面之后,我们就可以后端项目的打包了; 此时我们只需要调出 Maven 的功能按钮,然后按 clean compile package 就可以了;(厚礼点击clean-install打包成功了) 之后可以在控制台输出的路径中去找对应的 JAR 文件,然后再进行部署操作:

遇到的问题

1.我的后端项目分模块开发的,有一个父模块和两个子模块

多模块项目的打包方法:IDEA打包SpringBoot maven项目(包括多模块)_花火66666的博客-CSDN博客_idea maven多模块工程打包

2.对父模块的maven进行clean时报错

[ERROR] Some problems were encountered while processing the POMs: [FATAL] Non-resolvable parent POM for com.bank:pamp:0.0.1-SNAPSHOT: Could not find artifact com.bank:pamp-parent:pom:0.0.1-SNAPSHOT and 'parent.relativePath' points at no local POM @ line 5, column 13 @

解决方法:

先把parent项目pom中的<modules>注释掉再clean install
之解除注释后再clean也可以了

原因:
多模块项目构建时,先将parent项目要先install一回,之后子项目才可以运行mvn compile命令,否则就会报如上异常。

问题3.打包提示:Unable to find main class

修改子模块pom的配置文件 ,设置过滤即可

<plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
</plugin>

 

解决方法2:将主类所在模块的pom中添加上述plugin,其余模块和主模块中的pom均不要该配置。

完成后

在子模块文件下能找到相应的jar包和war包

二、部署

把打包好的jar文件放到Linux的终端或cmd中运行即可

java -jar Jar文件名
或
java -jar War文件名

 

posted @ 2022-08-18 16:53  StarZhai  阅读(1383)  评论(1编辑  收藏  举报