欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot项目打jar包部署到服务器

程序员文章站 2022-03-30 16:29:03
...

1、准备工作

创建一个springboot项目(创建项目请见idea创建一个SpringBoot项目),本地启动查看相关接口页面是否正常。

代码:

springboot项目打jar包部署到服务器

页面测试:

springboot项目打jar包部署到服务器

接口测试:

springboot项目打jar包部署到服务器

在resources下面创建三个文件分别是:application-dev.properties,application-test.properties,application-prod.properties,分别对应的开发,测试,生产环境。在application.properties中配置spring.profiles.active属性,表示打包使用哪个环境。这样的好处是不需要修改大量的配置文件信息。

springboot项目打jar包部署到服务器

2、springboot项目打包

在idea右侧点击Maven,找到自己的项目点击,找到Lifecycle点开,先双击clean,再双击package,查看打包日志。打包成功后会在项目中生成一个target目录,打开就可以看到jar包了。springboot项目打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上传到服务器中。

springboot项目打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 意思是把 标准错误输出 重定向到标准输出。

springboot项目打jar包部署到服务器

启动后可以通过 tail -f server.log 命令查看输出的日志,可以在日志中看到启动的端口号就已经启动成功了。

5、测试项目部署到服务器的有效性

下面测试正常返回,说明已部署好了。如果访问不了,请检查一下防火墙和安全组是否已开放端口号。

页面测试:

springboot项目打jar包部署到服务器

接口数据测试:

springboot项目打jar包部署到服务器

6、使用脚本启动项目

springboot项目打jar包部署到服务器

为了方便启动、停止、重启项目,我们来配置一个脚本,脚本名为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项目的部署已完成!

 

本文章是我学习所记录,如有问题请及时告知,谢谢!!!