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

5 篇文章 0 订阅
1 篇文章 0 订阅

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项目的部署已完成!

 

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

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值