美文网首页
Spring Boot项目打包并部署到云服务器

Spring Boot项目打包并部署到云服务器

作者: 微笑涛声 | 来源:发表于2020-04-19 18:25 被阅读0次

    Spring Boot项目打包并部署到云服务器

    一、云服务器的环境

    • OS: CentOS 7
    • Jdk 1.8
    • Spring Boot自动集成Tomcat,不需要单独配置

    二、本地Spring Boot项目打包

    • 我使用的工具是IntelliJ IDEA。打包之前先确保MAVEN配置正确。在cmd出口中输入:mvn用来检查是否配置正确。
    • 然后在项目的pom.xml文件中加入以下依赖(在</project>之前)。
    <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    
    
    
    • 进行打包命令:mvn clean package
    • 如果IDEA自带的终端出现:mvn不是内部或外部命令,也不是可运行的程序 或批处理文件。可以使用cmd(管理员运行)进入项目位置。在执行命令。
    • 打包完成以后会在项目的target文件夹下生成cms-1.0-SNAPSHOT.jar这样的JAR包。
    • 然后将jar包数据库文件启动脚本放在一个文件夹内上传到云服务器。我的是放在:``/usr/server/cms`
    • 启动脚本可以下载,蓝奏云地址:<a href="https://www.lanzous.com/ia53ggf" target="_blank" rel="noopener noreferrer" style="text-decoration: none;">▶ 启动脚本</a>
    • 也可以自己新建一个文本文档命名为:catalina.sh,然后复制以下内容。JAR包的名称需要自己修改。
    #!/bin/bash
    #这里可替换为你自己的执行程序
    APP_NAME=cms-1.0-SNAPSHOT.jar
    #使用说明,用来提示输入参数
    usage() {
        echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
        exit 1
    }
    #检查程序是否在运行
    is_exist(){
      pid=`ps -ef|grep $APP_NAME|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
           BUILD_ID=dontKillMe
        nohup java -jar $APP_NAME > ./catalina.log &
      fi
    }
    #停止方法
    stop(){
      is_exist
      if [ $? -eq "0" ]; then
        kill -9 $pid
      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
      start
    }
    #根据输入参数,选择执行对应方法,不输入则执行使用说明
    case "$1" in
      "start")
        start
        ;;
      "stop")
        stop
        ;;
      "status")
        status
        ;;
      "restart")
        restart
        ;;
      *)
        usage
        ;;
    esac
    
    

    三、启动Spring Boot服务

    • 首先在云服务器安装Java,建议与本地Java版本一致。可以参考:<a href="https://www.cztcms.cn/?p=953" target="_blank" rel="noopener noreferrer" style="text-decoration: none;">▶ CentOS 7搭建Java开发平台——Java 8</a>
    • 然后进入jar包存放位置,添加权限:(我的是在/usr/server/cms下执行)
    chmod 777 * .
    
    • 启动:在jar包的目录下执行
    ./catalina.sh start
    
    • 查看启动日志
    tail -f catalina.log
    

    四、测试结果

    • 查看启动日志,没有报错以后可以用Postman或者浏览器测试结果
    image

    相关文章

      网友评论

          本文标题:Spring Boot项目打包并部署到云服务器

          本文链接:https://www.haomeiwen.com/subject/aahbbhtx.html