Spring Boot+Vue项目打包部署

在前后端分离的项目中,最后前后端项目开发完毕都需要进行打包部署发布到服务器上面运行,所以需要对前端开发的项目进行打包,然后将打包后的文件放在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)方法中,指定放过的路径

@Override
    public 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项目停掉,还是要继续运行,&表示在后台运行
在这里插入图片描述

  • 17
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
要将Spring Boot + Vue项目部署到Linux上,您可以按照以下步骤进行操作: 1. 首先,确保您已经在Linux服务器上安装了Java运行环境(JRE)和Node.js。您可以使用以下命令来验证它们是否已安装: ```shell java -version node -v ``` 如果命令返回版本信息,则说明已成功安装。 2. 将您的Spring Boot后端应用程序打包成可执行的JAR文件。您可以使用Maven或Gradle进行构建。在项目根目录下运行以下命令: ```shell mvn clean package ``` 或 ```shell gradle clean build ``` 这将生成一个可执行的JAR文件。 3. 接下来,将Vue前端应用程序打包成静态文件。在Vue项目根目录下运行以下命令: ```shell npm run build ``` 这将生成一个dist目录,其中包含了打包后的静态文件。 4. 将生成的JAR文件和dist目录复制到Linux服务器上。您可以使用FTP工具或SCP命令进行复制。 ```shell scp /path/to/your-app.jar user@your-server-ip:/path/on/server/ scp -r /path/to/dist user@your-server-ip:/path/on/server/ ``` 5. 连接到Linux服务器,并在目标部署目录下创建一个新目录,用于存放您的应用程序文件。 ```shell ssh user@your-server-ip mkdir /path/on/server/your-app ``` 6. 将JAR文件重命名为您想要的应用程序名称,并将其复制到目标部署目录。 ```shell mv /path/on/server/your-app.jar /path/on/server/your-app/your-app.jar ``` 7. 配置Linux服务器上的服务管理工具(例如systemd)以管理您的Spring Boot应用程序。创建一个新的服务配置文件,如`your-app.service`,并将以下内容添加到该文件中: ```plaintext [Unit] Description=Your App After=syslog.target [Service] User=your-user ExecStart=/usr/bin/java -jar /path/on/server/your-app/your-app.jar SuccessExitStatus=143 [Install] WantedBy=multi-user.target ``` 将`your-user`替换为您在Linux服务器上的用户名。 8. 将服务配置文件复制到服务目录,并启动您的应用程序服务。 ```shell sudo cp /path/on/server/your-app.service /etc/systemd/system/ sudo systemctl start your-app ``` 9. 现在,您的Spring Boot应用程序已经在Linux服务器上成功部署。通过访问服务器的公共IP或域名,加上您在Vue应用程序中定义的端口号,即可访问您的应用程序。 请注意,上述步骤仅适用于将Spring Boot + Vue项目部署到Linux服务器上。实际操作中可能会有所不同,具体取决于您的项目结构和需求。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值