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

Stella981
• 阅读 656

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

一、云服务器的环境

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

二、本地Spring Boot项目打包

  • 我使用的工具是IntelliJ IDEA。打包之前先确保MAVEN配置正确。在cmd出口中输入:mvn 用来检查是否配置正确。

  • 然后在项目的pom.xml文件中加入以下依赖(在</project>之前)。

    org.springframework.boot spring-boot-maven-plugin repackage
  • 进行打包命令:mvn clean package

  • 如果IDEA自带的终端出现:mvn不是内部或外部命令,也不是可运行的程序 或批处理文件。可以使用cmd(管理员运行)进入项目位置。在执行命令。

  • 打包完成以后会在项目的target文件夹下生成cms-1.0-SNAPSHOT.jar这样的JAR包。

  • 然后将jar包数据库文件启动脚本放在一个文件夹内上传到云服务器。我的是放在:``/usr/server/cms`

  • 启动脚本可以下载,蓝奏云地址:▶ 启动脚本

  • 也可以自己新建一个文本文档命名为: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版本一致。可以参考:▶ CentOS 7搭建Java开发平台——Java 8

  • 然后进入jar包存放位置,添加权限:(我的是在/usr/server/cms下执行)

    chmod 777 * .

  • 启动:在jar包的目录下执行

    ./catalina.sh start

  • 查看启动日志

    tail -f catalina.log

四、测试结果

  • 查看启动日志,没有报错以后可以用Postman或者浏览器测试结果
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
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
橘子橙 橘子橙
3年前
vue-element-admin项目打包后,iconfont图标出现乱码
使用vueelementadmin或者vueelementtemplate开发的项目,打包到线上,就出现了图标乱码,f12后能看到icon元素为.eliconclose:before{content:"□"}的情况(如下)
菜鸟阿都 菜鸟阿都
3年前
springboot+vue项目linux环境部署
项目部署是一个程序员必备的技能,当项目开发过程中,需要将项目部署在开发服务器上,进行自测,或协助运维,测试进行环境的搭建配置,学会了项目部署,你就是团队中最亮的那个仔。项目简介后端:springboot项目【打包为jar包】前端:vue项目【通过cli3搭建】目标服务器:liunx操作系统使用工具xshell:通过命令操作服务器sftp:上传安装包到服务器部
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Peter20 Peter20
3年前
mysql中like用法
like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Wesley13 Wesley13
3年前
1. 容器化部署一套云服务 第一讲 Jenkins(Docker + Jenkins + Yii2 + 云服务器))
容器化部署一套云服务系列1\.容器化部署一套云服务之Jenkins(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.cnblogs.com%2Fjackson0714%2Fp%2Fdeploy1.html)一、购买服务器服务器!caeef00
Stella981 Stella981
3年前
Spring Boot打包war jar 部署tomcat
概述1.SpringBoot聚合工程打包war部署Tomcat2.SpringBoot打包Jar,通过Javajar直接运行.3.提供完整pom.xml测试项目至github4.项目目前了集成了SpringBootSpringdatajpaRedis集群dubbofreemarker 持续更新...
Stella981 Stella981
3年前
Linux下部署springboot项目的步骤及过程
最近在研究将springboot项目部署到Linux服务器上,由于springboot是内嵌了tomcat,所以可以直接将项目打包上传至服务器上。我是在idea上的项目,所以我就基于此说下过程。(一)打包你的项目1、在pom文件中添加springboot的maven插件 !(https://img2018.cnblogs.com/blog/1
Wesley13 Wesley13
3年前
35岁是技术人的天花板吗?
35岁是技术人的天花板吗?我非常不认同“35岁现象”,人类没有那么脆弱,人类的智力不会说是35岁之后就停止发展,更不是说35岁之后就没有机会了。马云35岁还在教书,任正非35岁还在工厂上班。为什么技术人员到35岁就应该退役了呢?所以35岁根本就不是一个问题,我今年已经37岁了,我发现我才刚刚找到自己的节奏,刚刚上路。