springboot项目打jar包部署到服务器
1、准备工作
创建一个springboot项目(创建项目请见idea创建一个SpringBoot项目),本地启动查看相关接口页面是否正常。
代码:
页面测试:
接口测试:
在resources下面创建三个文件分别是:application-dev.properties,application-test.properties,application-prod.properties,分别对应的开发,测试,生产环境。在application.properties中配置spring.profiles.active属性,表示打包使用哪个环境。这样的好处是不需要修改大量的配置文件信息。
2、springboot项目打包
在idea右侧点击Maven,找到自己的项目点击,找到Lifecycle点开,先双击clean,再双击package,查看打包日志。打包成功后会在项目中生成一个target目录,打开就可以看到jar包了。
所涉及的代码:
<build>
<finalName>${project.name}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<!--指定所使用的配置文件目录-->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
</build>
3、上传服务器
使用ftp上传工具(如:FinalShell,Xftp等),将jar上传到服务器中。
4、启动项目
// 在上传的项目目录中启动命令,
nohup java -jar test-1.jar >> server.log 2>&1 &
nohup表示永久运行,&表示后台运行,一般nohup 和 & 两个一起用。
java -jar xxxx.jar:启动jar的命令。
>> server.log:是表示将输出重定向到server.log文件中。
2>&1:0表示标准输入,1表示标准输出,2表示标准错误输出, > 默认为标准输出重定向,与 1> 相同, 2>&1 意思是把 标准错误输出 重定向到标准输出。
启动后可以通过 tail -f server.log 命令查看输出的日志,可以在日志中看到启动的端口号就已经启动成功了。
5、测试项目部署到服务器的有效性
下面测试正常返回,说明已部署好了。如果访问不了,请检查一下防火墙和安全组是否已开放端口号。
页面测试:
接口数据测试:
6、使用脚本启动项目
为了方便启动、停止、重启项目,我们来配置一个脚本,脚本名为server.sh,脚本代码如下:
#!/bin/bash
#这里可替换为你自己的执行程序的文件名
APP_NAME=test-1
#启动项目的路径
APP_PATH=./${APP_NAME}.jar
#输出日志的路径
LOG_PATH=./${APP_NAME}.log
#使用说明,用来提示输入参数
usage(){
echo "Usage: sh ${APP_NAME}.sh [start|stop|restart|status]"
exit 1
}
#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $APP_NAME.jar|grep -v grep|awk '{print $2}'`
#如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
#启动方法
start(){
is_exist
if [ $? -eq 0 ]; then
echo "${APP_NAME} is already running. pid=${pid}"
else
# 执行jar的命令,nohup表示永久运行。&表示后台运行
# --server.port=8001 设置端口
# nohup java -jar ${APP_PATH} --server.port=8001 >> ${LOG_PATH} 2>&1 &
nohup java -jar ${APP_PATH} >> ${LOG_PATH} 2>&1 &
echo "${APP_NAME} start success"
fi
}
#停止方法
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
echo "${APP_NAME} stop success"
else
echo "${APP_NAME} is not running"
fi
}
#输出运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is not running."
fi
}
#重启
restart(){
stop
sleep 1
start
echo "${APP_NAME} restart success"
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
// 进入jar存放的路径
cd /home/test
启动命令: sh server.sh start 或者使用 ./server.sh start
停止命令:sh server.sh stop 或者使用 ./server.sh stop
重启命令:sh server.sh restart 或者使用 ./server.sh restart
注:如果./server.sh start、./server.sh stop、./server.sh restart报错-bash: ./startup.sh: Permission denied ,是因为用户没有权限,而导致无法执行。解决方法:用命令chmod 就在server.sh所在目录下执行。chmod u+x server.sh 这样就ok了
至此springboot项目的部署已完成!
本文章是我学习所记录,如有问题请及时告知,谢谢!!!
推荐阅读
-
springboot项目打成war包部署到tomcat遇到的一些问题
-
SpringBoot war包部署到Tomcat服务器
-
Spring框架学习笔记(6)——阿里云服务器部署Spring Boot项目(jar包)
-
SpringBoot war包部署到Tomcat服务器
-
Springboot项目部署到服务器
-
搭建项目后台环境,把jar包部署到云服务器上面的过程
-
SpringBoot项目部署到服务器上的方法(Jar包)
-
IDEA下 springBoot 生成war包 部署到服务器
-
SpringBoot + Vue 项目部署上线到Linux 服务器的教程详解
-
SpringBoot项目部署到服务器(idea)