# Spring Boot项目打包部署
Spring Boot Web + Maven 构建打包;
开发环境:window10、java@20、Maven@4.0.0、intellij idea;
线上环境:CentOS、java@20;
以下内容讲解,默认你已经安装好相关工具和环境。
# 打包
对于Spring Boot,Spring官方的建议是将Spring Boot应用打包成一个fat jar(Java ARchive),通过java命令来启动运行。
# idea
如果使用 intellij idea打包。idea 会自带 Maven,通过 idea 右侧中的 Maven,找到相关项目,双击Lifecycle下的package,即运行打包构建,jar包会被放在target目录下。
# 命令行
如果想要命令行打包,本地记得安装Maven。进入项目目录:
#清理已存在的编译结果
mvn clean
#打包
mvn package
1
2
3
4
5
2
3
4
5
目标jar包会被放在target目录下。
# 测试
进入到jar包存放目录
java -jar 打包名称.jar
#运行成功后会输出如下信息
[main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.12]
[main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
[main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 947 ms
[main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8989 (http) with context path ''
[main] com.example.demo.Demo1Application : Started Demo1Application in 1.581 seconds (process running for 1.909)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 部署
先将构建好的 jar包 上传到服务器上,可使用 Filezilla (opens new window) 上传,至于上传到那个目录下,这个自己确定。
# 日志
#修改文件夹权限
sudo chmod 777 /webapp/demo/
sudo chmod 777 /webapp/demo/logs
1
2
3
2
3
# 启动
#创建启动脚本start.sh
sudo vi /webapp/demo/start.sh
#启动
sh /webapp/demo/start.sh
1
2
3
4
5
2
3
4
5
start.sh 文件内容:
#!/bin/sh
#指定JDK目录&AppName
export JAVA_HOME=/usr/java20
APP_NAME=demo1-0.0.1-SNAPSHOT.jar
echo $JAVA_HOME
echo $APP_NAME
#nohup命令后台启动jar包并写入日志
nohup java -jar $APP_NAME >>logs/start.log 2>>logs/startError.log &
#sleep等待15秒后,判断包含AppName的线程是否存在
sleep 15
if test $(pgrep -f $APP_NAME|wc -l) -eq 0
then
echo "Start Failed"
else
echo "Start Successed"
fi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 停止
#创建停止脚本文件
sudo vi /webapp/demo/stop.sh
#停止
sh /webapp/demo/start.sh
1
2
3
4
5
2
3
4
5
stop.sh文件内容:
#!/bin/sh
#指定AppName
APP_NAME=demo1-0.0.1-SNAPSHOT.jar
#找到包含AppName的进程
PROCESS=`ps -ef|grep $APP_NAME|grep -v grep |awk '{ print $2}'`
#循环停用进程直到成功
while :
do
kill -9 $PROCESS > /dev/null 2>&1
if [ $? -ne 0 ];then
break
else
continue
fi
done
echo 'Stop Successed'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 访问
在开启之后,可以直接通过ip+端口访问,也可以通过nginx配置添加域名代理访问。
如果是ip+端口访问,记得配置防火墙开放端口。
如果是域名访问,http域名记得开放80端口。
🥰Me
男性,武汉工作,会点Web,擅长Javascript.
技术或工作问题交流,可联系微信:1169170165.
🚀小程序&公众号
🚀运行
2024年2月19日星期一下午2点01分
博客已运行:--天--时--分--秒