这里讲简单的小型项目通常的部署方式,即不使用docker和k8s类似的那一套自动化运维方式。一般地,对于spring boot 项目,我们会把开发测试好的项目打成可执行的jar包,使用scp等方式将jar包上传至生产服务器,这样只需Linux上有Java执行环境即可运行。

如何打包

  • 用maven插件,先clean ,然后package 即可;【idea常用方式】
  • 编辑运行,右键项目 run as ,在maven build 中的goals栏填 clean package 即可;【eclipse常用】

如何上传

  • 使用 mobaxterm,ssh到服务器后,可以直接sftp上传,很方便
  • 使用puttyxshell等 ,ssh到服务器 可用scp方式上传文件,scp命令可参考这里

如何运行

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还是微服务很多、涉及分布式之类的大点的项目比较合适。

以下文章也不错,供参考,一起进步!

linux下后台启动springboot项目
Linux中运行SpringBoot项目,永久运行

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐