Spring Boot 项目打包部署到服务器
参考文章:SpringBoot项目如何进行打包部署 - zhuyuansj - 博客园 (cnblogs.com)
首先在项目的 application.yaml 文件中配置地址
server:
port: 8081
同时注意 mysql 的 Driver 路径
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver # com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/vueblog?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC
username: root
password: 123456
并且在pom.xml
配置文件中配置打包环境
<!-- 打包 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.markhub.vueblog.VueblogApplication</mainClass>
</configuration>
<version>1.5.9.RELEASE</version>
</plugin>
</plugins>
</build>
在这里自己踩过一坑,就是我使用的是阿里巴巴的 starter Service 的时候,用上面这个打包配置后运行jar包会出现 jar中没有主清单属性的问题
在这里呢如果使用的是阿里巴巴的 starter URL 路径下载spring boot工程的话,那么上面的代码修改成如下的代码:
<!-- 打包 -->
<build>
<plugins>
<!--<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.an.epidemic.EpidemicApplication</mainClass>
</configuration>
<version>1.5.9.RELEASE</version>
</plugin>-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.0.RELEASE</version> <!-- 这里是Spring Boot版本 -->
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
在启动类当中加上extends SpringBootServletInitializer并重写configure方法
为打包做准备:
package com.markhub.vueblog;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class VueblogApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(VueblogApplication.class, args);
}
// 打包 spring boot项目
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(this.getClass());
}
}
运行maven打包工具
最后显示
然后使用命令运行 jar 包
进入文件中:
在这里打开 powerShell窗口运行指令
java -jar vueblog-0.0.1-SNAPSHOT.jar
启动项目
Linux系统一样
jar包在Linux后台运行
启动项目的配置如下代码:
java -jar vueblog-0.0.1-SNAPSHOT.jar
让jar包在后台运行方式
指令如下:
nohup java -jar vueblog-0.0.1-SNAPSHOT.jar >temp.txt &
运行效果如下:
表示运行成功
可以使用jobs
指令查看后台运行的jar包(下图 [1] 表示编号)
使用指令 fg 编号
可以后台程序调到前台
ctrl + z
把该程序挂至后台,该程序暂停
使用指令 bg 编号
可以将一个在后台暂停的程序,变成在后台继续执行
在前台我们可以通过Ctrl+C
结束程序
在后台我们通过kill 编号
来结束
在Linux上查看jar包的进程指令:
ps -ef | grep java
找到我们需要关闭的进程:
执行杀死进程的指令:
kill -9 pid(4079) # 这里的id是 4079
执行完毕之后再去查看
发现这个进程已经杀死了。