乐享无线技术分享站

乐享无线技术分享
乐享无线,资源分享,互联网产品、技术分享
  1. 首页
  2. 运维
  3. 正文

Jenkins结合gitee自动化部署SpringBoot项目

2022年7月8日 4783点热度 0人点赞 0条评论

安装

安装教程

插件选择

Gitee Plugin

配置

  • 源码管理
    填写源码地址 注意:请确保genkins所在的服务器有权限git拉取远程仓库代码,如果不可以请参考ssh配置
    centos 配置ssh拉取远程git代码
源码管理
  • 构建触发器
    1.勾选Gitee webhook 触发构建
    2.生成webhook密码

    构建触发器

    3.在gitee项目管理中配置webhook

    gitee配置webhook
  • 构建

    使用MAVEN构建

    如果没有配置maven请先进系统配置中配置,maven肯定要jdk,所以还需要配置jdk环境

    全局工具配置

    填写maven信息

    JDK配置

    配置ssh服务器信息

    配置ssh

    ssh配置

    通过ssh远程推送文件

    推送文件并执行命令

    下面代码大概意思是吧当前构建完成目录下的源文件去除前缀发送到远程服务器的指定目录,并且执行命令,shell下的sh文件是项目文件

配置所需的代码↓

#Source files 源文件
shell/*.sh
#Remove prefix 移除前缀
shell/
#Remote directory 远程目录
/home/jenkins/moodle/
#Exec command 执行命令

#在添加一个Transfer Set
#Source files 源文件
moodle-admin/target/moodle-admin-1.0-SNAPSHOT.jar
#Remove prefix 移除前缀
moodle-admin/target/
#Remote directory 远程目录
/home/jenkins/moodle/admin
#Exec command 执行命令
cd /home/jenkins/moodle
chmod 777 admin.sh
mv admin.sh admin/my.sh
cd admin
./my.sh restart

#以此类推,如果有多个模块需要启动则添加多个jar
#Source files 源文件
moodle-client/target/moodle-client-1.0-SNAPSHOT.jar
#Remove prefix 移除前缀
moodle-client/target/
#Remote directory 远程目录
/home/jenkins/moodle/client
#Exec command 执行命令
cd /home/jenkins/moodle
chmod 777 client.sh
mv client.sh client/my.sh
cd client
./my.sh restart
项目结构

项目中shell/admin.sh代码↓

#!/bin/sh
#定义程序名 及jar包的名 请替换成自己的
PROJECT_NAME=moodle-admin-1.0-SNAPSHOT.jar
## 编写判断程序是否正在运行的方法
isExist(){
      ## 首先查找进程号
    pid=$(ps -ef | grep ${PROJECT_NAME} | grep -v "grep" | awk '{print $2}')
    ## 如果进程号不存在,则返回0 否则返回1
    if [ -z "${pid}" ]; then
        return 0
    else
        return 1
    fi
}
## 编写启动程序方法
start(){
      ## 调用 判断程序是否正在运行的方法
    isExist
    ## 判断方法返回值是否等于0 ,等于则不存在
    if [ $? -eq "0" ]; then
        echo "${PROJECT_NAME} is starting ......"
        nohup java -jar ${PROJECT_NAME} --spring.profiles.active=prod > ./startup.log &
        echo "${PROJECT_NAME} startup success"
    else
        echo "${PROJECT_NAME} is running, pid=${pid} "
    fi
}
## 编写停止程序的方法
stop(){
    ## 调用 判断程序是否正在运行
    isExist
    ## 判断是否存在,返回值0不存在
    if [ $? -eq "0" ]; then
        echo "${PROJECT_NAME} is not running ......"
    else
        echo "${PROJECT_NAME} is running, pid=${pid}, prepare kill it "
        kill -9 ${pid}
        echo "${PROJECT_NAME} has been successfully killed ......"
    fi
}
## 编写重启方法
restart(){
    ## 先停止再启动
    stop
    start
}
 
 
## 程序最开始执行的
## 根据用户输入,判断执行方法
case "$1" in
    "start")
        start
        ;;
    "stop")
        stop
        ;;
    "restart")
        restart
        ;;
    *)
        echo "please enter the correct commands: "
        echo "such as : sh startup.sh [ start | stop | restart ]"
        ;;
esac
标签: 暂无
最后更新:2022年7月9日

乐

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

取消回复
归档
  • 2022 年 10 月
  • 2022 年 7 月
最新 热点 随机
最新 热点 随机
Spring为何需要三级缓存解决循环依赖,而不是二级缓存? Tomcat&Spring&Dubbo优雅关闭流程分析 网站https访问配置证书 Jenkins结合gitee自动化部署SpringBoot项目 Docker:制作Python环境连接Oracle的镜像 Anaconda环境下Python中pydot与graphviz模块的下载与安装方法
ADB环境变量配置 (一)Android 编译ffmpeg动态链接库 Mac OS系统 Kubernetes | 二进制安装Containerd v1.6.6 Linux实用基础1 Mac安装jdk的图文教程 MySQL授权命令grant的使用方法
标签聚合

COPYRIGHT © 2022 乐享无线技术分享站. ALL RIGHTS RESERVED.

粤ICP备2021126988号-1