shell脚本启动springboot项目

shell脚本启动springboot项目

参考网址:

https://www.cnblogs.com/alliswell2king/p/11753289.html

https://mp.weixin.qq.com/s/FMn4gbGxTh-bmnZ5cajBPA

1.快速构建springboot项目

快速构建springboot项目建议使用aliyun java initializr

访问地址:

https://start.aliyun.com/bootstrap.html

优势:

  1. 可以快速构建springboot项目,比spring initalizr方便快速
  2. 在线浏览代码
  3. 直接使用git clone获取代码
  4. 选择相应依赖可以有相应的示例代码生成

image-20210906191316176

image-20210906191626607

2.上传项目到测试centos服务器

  1. 使用git clone获取项目

image-20210906193018177

image-20210906193140264

  1. 导入idea写一个springmvc测试方法

image-20210906193222810

HelloController

package com.example.springbootdemo.demos.web;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
 * @ClassName: HelloController
 * @Author: 邵明
 * @Date: 2021/9/6 19:33
 * @Description:
 */
@RestController
public class HelloController {
    @Value("${spring.application.name}")
    private String projectName;
    @Value("${server.port}")
    private String port;
    @GetMapping("/hello")
    public Map hello(){
        HashMap<Object, Object> map = new HashMap<>();
        map.put("port",port);
        map.put("projectName",projectName);
        System.out.println("该springboot项目端口号为:"+port);
        System.out.println("该springboot项目项目名为::"+projectName);
        return map;
    }
}

3.设置gitee仓库

  1. 自己在自己的gitee上新建一个仓库

  2. 设置ssh key公钥到gitee

    参考:

    https://gitee.com/help/articles/4191

image-20210906195857435

4.idea同步到远程仓库

image-20210906200252500

image-20210906200452177

5.推送代码到远程仓库

image-20210906200825270

重点说明:

一定推送到gitee远程仓库,而不是origin

image-20210906200917771

6.登录centos服务器拉去代码

前提条件

  1. 安装jdk

  2. maven

参考网址:

http://www.shaoming.club/archives/linux%E5%AE%89%E8%A3%85java%E5%AD%A6%E4%B9%A0%E7%8E%AF%E5%A2%83%E6%9C%AA%E5%AE%8C%E5%BE%85%E7%BB%ADmd

  1. 安装了git

安装git命令

yum install git -y

  1. 拉去项目到服务器

git clone <ssh地址>

image-20210906201534366

7.测试项目是否可以访问

# 进入项目目录
cd ./springboot-demo
# 关联远程仓库取别名
git remote add gitee  git@gitee.com:shao_ming314/springboot-demo.git
# maven进行打包
mvn package clean

image-20210906201927185

启动项目

java -jar target/springboot-demo-0.0.1-SNAPSHOT.jar 

访问网址: ip:8080/hello

image-20210906203321437

测试成功

8.根据上述步骤写shell脚本

新建一个shell文件 start-springboot-demo.sh

内容如下:

#!/bin/bash
# 进入项目目录
cd /opt/project/demo_project/springboot-demo/

# 从仓库拉去项目 gitee(远程仓库别名),master(需要拉取的分支)
# 关联远程仓库的命令 git remote add gitee  git@gitee.com:xxxxxx/springboot-demo.git
git pull gitee master

#拉取项目可能需要时间,等2秒钟
sleep 2

# maven打包 --先clean在打包过程中跳过测试,节省时间
 mvn clean package -Dmaven.skip.test=true
 
# 打包可能需要一点时间,等十秒钟 
sleep 10

#jar包文件路径及名称(目录按照各自配置)
APP_NAME=/opt/project/demo_project/springboot-demo/target/springboot-demo-0.0.1-SNAPSHOT.jar

#日志文件路径及名称(目录按照各自配置)
LOG_FILE=/opt/project/demo_project/springboot-demo/target/springboot-demo.log

#查询进程,并杀掉当前jar/java程序

pid=`ps -ef|grep $APP_NAME | grep -v grep | awk '{print $2}'`
kill -9 $pid
echo "$pid进程终止成功"

sleep 2

#判断jar包文件是否存在,如果存在启动jar包,并时时查看启动日志

if test -e $APP_NAME
then
echo '文件存在,开始启动此程序...'

# 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件
nohup java -jar $APP_NAME > $LOG_FILE 2>&1 &

#实时查看启动日志(此处正在想办法启动成功后退出)
tail -f $LOG_FILE

#输出启动成功(上面的查看日志没有退出,所以执行不了,可以去掉)

#echo '$APP_NAME 启动成功...'
else
echo '$APP_NAME 文件不存在,请检查。'
fi

9.测试是否成功

执行脚本

第一种方式

sh start-springboot-demo.sh

第二种方式

# 赋予脚本执行权限(测试期间,给777权限即可)
chmod 777 start-springboot-demo.sh
# 执行脚本
 ./start-springboot-demo.sh

成功打印日志并且浏览器可以访问

image-20210906204840991

image-20210906204855945

成功




个人csdn博客网址:https://blog.csdn.net/shaoming314

jam

个人博客网址:www.shaoming.club

halo

勇敢牛牛,不怕困难

img
  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值