首页 > 其他分享 >springbot+vue项目的打包部署

springbot+vue项目的打包部署

时间:2022-08-18 17:01:11浏览次数:86  
标签:vue parent URL pom 模块 springbot 打包

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文件名

 

标签:vue,parent,URL,pom,模块,springbot,打包
From: https://www.cnblogs.com/StarZhai/p/16599327.html

相关文章

  • vue学习之------vue-router【导航守卫】
    导航守卫可以控制路由的访问权限。全局导航守卫会拦截每个路由规则,从而对每个路由进行访问权限的控制。打印一个值看看:  举例:需要登陆才能访问后台管理系统 ......
  • Vue 中引入 json 的三种方法
    Vue中引入json的三种方法 json的定义:JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。JSON是JS对象的字符串表示法,它使用文本表示一个JS对象......
  • Vue-Element-ui Cascader 级联选择器
    Vue-Element-uiCascader级联选择器 基本属性介绍:<el-cascaderv-model="selectedKeys"//v-model绑定的selectedKeys接收的是数组类型:options="par......
  • Vue开发常见插件
    Vue项目无论是前端项目还是移动端项目,优先推荐使用VSCode作为编译工具。VSCode从使用的角度来说没有IDEA用着方便,但是从Vue的支持程度来说,还是不错的,所以优先推荐大家使......
  • vue3将对象转为响应式/ref/reactive/toRefs
    一、ref的作用就是将一个原始数据类型(primitivedatatype)转换成一个带有响应式特性的数据类型,原始数据类型共有7个,分别是:String/Number/BigInt/Boolean/Symbol/Null/Unde......
  • vue-element-ui中的table 针对于一列中不同的数据添加不同的样式
    针对table中的row中的值给出不同的样式解决方案;1.在<el-table>标签中添加属性;实例<el-table    :data="table......
  • vue 针对多端口的情况下文件上传处理方法
    在一个项目中,可能会存在多个端口号,因为不同的业务作为区分,需要多个端口号:解决方案,·1.在特定的端口号中api接口中进行加入特定的字符2.针对api的形式,使用form......
  • Golang打包windows、macos、linux下可执行文件
    windows.exe:#64bitGOOS=windowsGOARCH=amd64gobuild-obin/app-amd64.exeapp.go#32-bitGOOS=windowsGOARCH=386gobuild-obin/app-386.exeapp.goLinu......
  • vue 片区公司关联
    //片区公司关联constassociationChange=async(areaId,companyId,type)=>{letlist=awaitGetCompanyList({areaId:areaId,......
  • vue 2 坑编译系统
    errorin./src/components/NumberInfo/NumberInfo.vue?vue&type=style&index=0&id=4370c5af&lang=less&scoped=true&SyntaxError:TypeError:Cannotsetproperty'pare......