这里讲简单的小型项目通常的部署方式,即不使用docker和k8s类似的那一套自动化运维方式。一般地,对于spring boot 项目,我们会把开发测试好的项目打成可执行的jar包,使用scp等方式将jar包上传至生产服务器,这样只需Linux上有Java执行环境即可运行。
如何打包
- 用maven插件,先clean ,然后package 即可;【idea常用方式】
- 编辑运行,右键项目 run as ,在maven build 中的goals栏填 clean package 即可;【eclipse常用】
如何上传
如何运行
java -jar xxx.jar
这种方式的问题是会占用当前console,且当前console关闭后,程序也shutdown了
nohup java -jar xxx.jar &
这种方式更好,可以让程序在后台运行,不会占用当前console,且会将程序运行的日志输出为一个默认的 .out 日志文件,如果你的项目中配置了自己的日志文件打印规则及路径,则可使用以下命令忽略之:
nohup java -jar xxxx.jar >/dev/null 2>&1 &
如何停止
ps -ef | grep java #获取Java项目的pid
kill -9 pid #杀死进程
觉得麻烦?可以写点半自动脚本
例如:(例子来源见文末参考)
start.sh
#!/bin/bash
nohup java -jar yourapp.jar &
stop.sh
#!/bin/bash
PID=$(ps -ef | grep yourapp.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo Application is already stopped
else
echo kill $PID
kill $PID
fi
可以写到一个脚本里更方便,如果还觉得不够省事儿,就上docker吧😂,额,docker似乎也没省多少事。不过对于小项目来说,上k8s就有点高射炮打蚊子的意思了,吃资源不说,运维起来也感觉完全没必要。个人感觉k8s还是微服务很多、涉及分布式之类的大点的项目比较合适。