SpringBoot项目如何打包部署到服务器
SpringBoot项目打包部署到服务器
在项目的 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
执行完毕之后再去查看
发现这个进程已经杀死了。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
SpringBoot+Shiro+Redis+Mybatis-plus 实战项目及问题小结
最近也是一直在保持学习课外拓展技术,所以想自己做一个简单小项目,于是就有了这个快速上手 Shiro 和 Redis 的小项目,说白了就是拿来练手调调 API,然后做完后拿来总结的小项目,感兴趣的朋友一起看看吧2021-04-04
Spring HttpMessageConverter的作用及替换解析
这篇文章主要介绍了Spring HttpMessageConverter的作用及替换解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-02-02


最新评论