在前后端分离的项目中,最后前后端项目开发完毕都需要进行打包部署发布到服务器上面运行,所以需要对前端开发的项目进行打包,然后将打包后的文件放在spring boot项目中的resource/static目录下面
前端项目

点击edit configuration进入run/debug configuration页面,点击+号,选择npm,name随便起,这里我们就用build好了,见名之意,在执行脚本中选择build命令,也就是在scripts中选择build,之后点击运行即可进行项目打包


打包完成如下图所示

此时再目录中就会生成一个dist文件

这里面就是存放的是我们打包后的文件,打开来看看里面都有啥

就是我们的css、js、img等文件,这些文件都是压缩过后的,内容格式发生了变化,内容是一样的,还有就是我们的首页,以及title的图标
我们将此dist文件复制到后端spring boot项目中的resources/static目录下

这里面的静态资源都会被spring security拦截,所以需要到我们的securityconfig配置类中,告诉spring security不要拦截这些静态资源,在configure(WebSecurity web)方法中,指定放过的路径

@Overridepublic void configure(WebSecurity web) throws Exception {web.ignoring().antMatchers("/login","/phone/food/**","index.html","favicon.ico","/static/**");}


然后再对spring boot项目进行打包,打成jar包,直接将jar包放到linux上面去运行,能打成jar包就是因为在我们的spring boot项目中多了一个依赖

<build>
<plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin>
</plugins>
</build>

五个功能分别是:

build-info:生成项目的构建信息文件 build-info.properties
repackage:这个是默认 goal,在 mvn package 执行之后,这个命令再次打包生成可执行的 jar,同时将 mvn package 生成的 jar 重命名为 *.origin
run:这个可以用来运行 Spring Boot 应用
start:这个在 mvn integration-test 阶段,进行 Spring Boot 应用生命周期的管理
stop:这个在 mvn integration-test 阶段,进行 Spring Boot 应用生命周期的管理


在target中有两个jar,来看看

第一个baiwei-0.0.1-SNAPSHOT.jar表示打包成的可执行 jar ,第二个baiwei-0.0.1-SNAPSHOT.jar.original则是在打包过程中 ,被重命名的 jar,这是一个不可执行 jar,但是可以被其他项目依赖的 jar。通过对这两个文件的解压,我们可以看出这两者之间的差异。都先改成zip的后缀,解压看看目录结构

先打包我们的可执行jar,我们的代码在boot-inf/classes目录下,还有一个 META-INF 的目录,该目录下有一个 MANIFEST.MF 文件,打开该文件,内容如下:


文件内容

Manifest-Version: 1.0
Implementation-Title: baiwei
Implementation-Version: 0.0.1-SNAPSHOT
Start-Class: com.zhouym.baiwei.BaiweiApplication
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Build-Jdk-Spec: 1.8
Spring-Boot-Version: 2.1.7.RELEASE
Created-By: Maven Archiver 3.4.0
Main-Class: org.springframework.boot.loader.JarLauncher

可以看到,这里定义了一个 Start-Class,这就是可执行 jar 的入口类,Spring-Boot-Classes 表示我们自己代码编译后的位置,Spring-Boot-Lib 则表示项目依赖的 jar 的位置。
换句话说,如果自己要打一个可执行 jar 包的话,除了添加相关依赖之外,还需要配置 META-INF/MANIFEST.MF 文件。

再来看看不可执行jar的目录结构

直接就是我们的代码部分,不可执行 jar 根目录就相当于我们的 classpath,解压之后,直接就能看到我们的代码,它也有 META-INF/MANIFEST.MF 文件,但是文件中没有定义启动类等。

Manifest-Version: 1.0
Implementation-Title: baiwei
Implementation-Version: 0.0.1-SNAPSHOT
Build-Jdk-Spec: 1.8
Created-By: Maven Archiver 3.4.0

这个不可以执行 jar 也没有将项目的依赖打包进来。

从这里我们就可以看出,两个 jar ,虽然都是 jar 包,但是内部结构是完全不同的,因此一个可以直接执行,另一个则可以被其他项目依赖。
下面就将jar包部署到linux上面去



nohup表示当终端窗口关闭时,不要把spring boot项目停掉,还是要继续运行,&表示在后台运行

Spring Boot+Vue项目打包部署相关推荐

  1. Spring Boot 9 :详细描述Spring Boot + Vue项目部署过程:Centos为例(重点)

    如何部署Spring Boot + Vue项目:Centos为例 一:项目上线:Centos版 1.ACterminal端: 1.1ssh登录服务器 1.2创建acs新用户(第一次创建) 1.3给用户 ...

  2. vue项目打包部署-----解决打包后访问资源失败问题

    vue项目打包部署-----解决打包后访问资源失败问题 参考文章: (1)vue项目打包部署-----解决打包后访问资源失败问题 (2)https://www.cnblogs.com/ycsc/p/1 ...

  3. Vue项目打包部署总结

    由于之前对前端部署上线这一套不清楚,所以这次通过查找多方资料总结一下.使用Vue作先后端分离项目时,一般前端是单独部署,用户访问的也是前端项目地址,所以前端开发人员颇有必要熟悉一下项目部署的流程与各种 ...

  4. Vue 项目打包部署实战完整流程总结!

    使用Vue做前后端分离项目时,通常前端是单独部署,用户访问的也是前端项目地址,因此前端开发人员很有必要熟悉一下项目部署的流程与各类问题的解决办法了. Vue项目打包部署本身不复杂,不过一些前端同学可能 ...

  5. vue项目打包部署流程

    vue项目打包部署流程 一.打包 二.部署 三.部署多个项目 一.打包 (可选)去除打包后会生成的map文件:在vue.config.js中添加productionSourceMap: false, ...

  6. vue项目打包部署到服务器,Vue项目打包部署到apache服务器的方法步骤

    vue项目在开发环境下,让项目运行起来,是通过npm run dev命令,原理是在本地搭建了一个express服务器. 但是在服务器上就不是这样的,必须要通npm run build命令来对整个项目进 ...

  7. vue项目打包部署nginx跨域

    vue项目打包部署nginx跨域 vue项目连接外部api接口时,打包部署到nginx后出现api404,api跨域问题,这个时候需要给vue项目本身进行跨域,再配置nginx中进行跨域即可解决,详见 ...

  8. Vue项目打包部署到Nginx服务器步骤总结

    前期准备工作: 1. 准备一台服务器: 2. 根据服务器的系统环境安装配置Nginx; 3. 了解Nginx的配置文件,了解常用的linux系统操作命令 4. 进行Vue项目的打包部署 因为我只是单纯 ...

  9. Spring Boot+Vue项目 微博系统(2):构建前端Vue项目

    系列目录 Spring Boot+Vue项目 微博系统 目录 系列目录 前言 一.安装Vue CLi 二.构建一个前端项目 三.启动测试 四.项目结构 五.配置 前言 前端项目可以借助 Vue CLi ...

最新文章

  1. 解决“安装程序无法定位现有系统分区,也无法创建新的系统分区”的方法
  2. 增强:MB1A物料价格检查
  3. CentOS6.10在VMware(虚拟机)安装过程
  4. 我对模拟电路课程的理解
  5. Javascript 对象二(Number、String、Boolean、Array、Date、Math、RegExp)
  6. 语句中如何结束本循环进入下一循环_Python3基础语法(八)--控制循环 while...
  7. php图像销毁_php对图像的各种处理函数代码小结
  8. android音频杂音问题_如何消除音频中的噪声?用这个简单好用的音频剪辑软件就够了...
  9. 收集表的使用与批量图片下载
  10. 使用防火墙禁止软件联网
  11. composer 安装php endroid/qrcode二维码应用,二维码里面添加logo
  12. 在做UDP传输的时候,出现的这个问题,哪个大佬能帮忙看一看啊
  13. allure如何定制Pytest自动化测试报告样式
  14. 预约上门App平台的接单方式
  15. 二维码制作软件那个好用?
  16. eclipse插件说明
  17. c 语言编程学习 编程环境_学习C ++编程语言的前5个网站
  18. Python如何下载网页上的视频
  19. 电商项目之购物车设计
  20. 我也来谈谈模型思维(一):同群效应

热门文章

  1. Windows安装VirtualBox教程(图文版)
  2. android多指触控失效,安卓--多指触控
  3. multithreading coding
  4. 将十进制正整数m转换成k进制(2≤k≤9)数的数字输出
  5. Python 轻松解决从 K 个字符串数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合。(对比用库和不用库的方法)
  6. unity 相同材质不同属性怎么合批
  7. Jupyterlab安装和配置
  8. 【Matlab学习手记】bsxfun的使用
  9. 1036. 跟奥巴马一起编程(15)
  10. 微信小程序使用weapp-qrcode生成二维码