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

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或者浏览器测试结果
<div align=left><img src ="https://www.cztcms.cn/wp-content/uploads/2020/03/ss1.png"/></div>
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

vue-element-admin项目打包后,iconfont图标出现乱码

使用vueelementadmin或者vueelementtemplate开发的项目,打包到线上,就出现了图标乱码,f12后能看到icon元素为.eliconclose:before{content:"□"}的情况(如下)

springboot+vue项目linux环境部署

项目部署是一个程序员必备的技能,当项目开发过程中,需要将项目部署在开发服务器上,进行自测,或协助运维,测试进行环境的搭建配置,学会了项目部署,你就是团队中最亮的那个仔。项目简介后端:springboot项目【打包为jar包】前端:vue项目【通过cli3搭建】目标服务器:liunx操作系统使用工具xshell:通过命令操作服务器sftp:上传安装包到服务器部

Android So动态加载 优雅实现与原理分析

背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我