IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> shell脚本启动springboot项目 -> 正文阅读

[Java知识库]shell脚本启动springboot项目

作者:recommend-item-box type_blog clearfix

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
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 18:40:35  更:2021-09-11 18:40:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:58:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码