前言
因为在公司有专门的发布系统,平时开发也不需要经常部署到linux系统调试,平时这个操作不是很常用;但是个人觉得这个过程还是很重要的,这里整理记录一下,以备不时之需;
部署springboot项目,有两种方式:
- 打成jar包,放置linux目录下,直接运行;
- 打成war包,放置linux的tomcat中运行;
接下来详细说明。
jar包方式
1.新建的springboot项目,没有指定打包方式,默认打包方式就是jar包:
2.打包
在项目名称上右键选择package选项(注意,此菜单需要idea提前安装maven helper插件)
运行之后,会默认在项目的target目录下出现jar包:D:\Projects\IdeaProjects\demo\target\demo-0.0.1-SNAPSHOT.jar(我的项目所在磁盘路径是D:\Projects\IdeaProjects\demo)
3.将jar包copy到linux文件目录中
比如我想放置到linux的/usr/local/bin下,
可以在此目录下使用 rz 命令
弹出对话框,选择刚才打包好的jar文件就ok了,完成后,在/usr/local/bin下使用 ll 命令查看文件目录;
可以发现,已经有jar包了。
4.启动jar包
在jar包所在路径下,使用命令 java -jar 文件,然后回车可以启动:
注意:上边这种启动方式属于前台启动,启动了就不能操作别的命令了,否则会导致这个启动的进程停止;所以我们一般使用后台启动命令:nohup java -jar demo-0.0.1-SNAPSHOT.jar &
5.浏览器访问项目
我提前在项目中建好了controller文件:
在浏览器中输入地址就可以访问:
6.停掉java后台进程
首先使用 ps -ef | grep java命令 查询进程号
发现进程号是 1711,然后使用命令 kill -9 1711,可以杀掉进程。
war包方式
1.设置打包方式
我们知道springboot项目默认打包方式是jar,要想打包成war,需要明确指定:
使用packaging标签指定。
然后再指定下打包后的war包名字:
注意:然后还需要改动一个地方,启动类,
继承SpringBootServletInitializer(这个类的作用就是替代原始的web.xml配置文件 ),然后重写configure方法;
2.然后使用同jar同样的方式打包,完成后,会在项目的target目录下生成war包,
3.将war包copy至tomcat中
war包需要放之tomcat中,所以需要先安装tomcat;
下载地址:https://tomcat.apache.org/download-80.cgi
下载linux需要的tar.gz格式(zip是window下的)
将下载的压缩包copy至linux的某一个目录下,就放在home目录下吧;
然后使用 tar -zxvf apache-tomcat-8.5.40.tar.gz 命令解压压缩包,
解压后的文件目录:
然后将war包,copy到webapps目录,
4.配置jdk
tomcat启动需要提前配置好jdk,下载好jdk,copy到linux目录中,比如/usr/java/目录,然后解压得到jdk1.8.0_191;
然后找到/etc/profile 文件,打开,在最后添加如下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_191
export JRE_HOME=
J
A
V
A
H
O
M
E
/
j
r
e
e
x
p
o
r
t
C
L
A
S
S
P
A
T
H
=
.
:
{JAVA_HOME}/jre export CLASSPATH=.:
JAVAHOME/jreexportCLASSPATH=.:{JAVA_HOME}/lib:
J
R
E
H
O
M
E
/
l
i
b
e
x
p
o
r
t
P
A
T
H
=
{JRE_HOME}/lib export PATH=
JREHOME/libexportPATH={JAVA_HOME}/bin:$PATH
这就配置好了jdk环境变量。
5.启动tomcat
在tomcat的bin目录下,使用 ./startup.sh 命令启动,
启动成功。
6.访问项目
7.停止tomcat
在bin目录下,使用命令 ./shutdown.sh
或者使用kill命令,
先查出进程号,ps -ef|grep tomcat 或者ps -ef|grep java
然后kill,
以上就是部署springboot项目的两种方式,其中在部署war时需要额外注意修改启动类;
在看别人部署文档时,发现有人说需要在pom.xml中排除tomcat包,不然会失败;但是我没有排除,也能成功的,后续在深入研究吧。