Linux git pull maven package jar restart

2024-06-14 04:52

本文主要是介绍Linux git pull maven package jar restart,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

流程:linux上手动拉取git代码,并通过maven打包,把jar拷贝到指定目录下,备份原jar重启服务,查看启动日志。
场景:解决本地打包,上传服务器的步骤,代替搭建jenkins的步骤,省去jenkins消耗内存的弊端。
劣势:没有实现完全自动化,需要登录服务器手动执行脚本,并查看日志
优势:省内存,及时观察日志,能及时回滚

环境
centos7
git仓库
maven-3.6.3
java环境

步骤:

第一步:下载安装

yum install git
yum install java-1.8.0-openjdk-devel(已有java环境可以跳过)
yum install git
wget http://apache.mirrors.tds.net/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

maven下载地址:maven官网

https://maven.apache.org/download.cgi

第二步:配置环境变量

tar -xzvf apache-maven-3.6.3-bin.tar.gz
mv apache-maven-3.6.3 /usr/local/mavenvim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_231
export PATH=$PATH:$JAVA_HOME/binexport M2_HOME=/usr/local/maven
export PATH=$M2_HOME/bin:$PATHsource /etc/profile
mvn -v

第三步:配置ssh免密(拉代码使用)

#生成SSH密钥对
ssh-keygen -t rsa -b 4096
#添加SSH公钥到ssh-agent
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
#复制公钥
cat ~/.ssh/id_rsa.pub
#添加公钥到git仓库:登录到git的网页界面,进入您的个人设置,找到SSH公钥的部分,将剪贴板中的公钥内容粘贴进去并保存。
#测试SSH连接
ssh -T git@gitee.com:xxxx/spring-template.git

第四步:拉取代码并打包

#clone代码
git clone git@gitee.com:xxxx/spring-template.git
#进入代码目录
cd spring-template
#拉取代码
git pull
#查看分支
git branch -r
#切换分支
git checkout -b feature/1.0.0 origin/feature/1.0.0
#打包
mvn clean package

第五步:执行脚本自动打包备份原包并复制

sh package.sh

#!/bin/bash# 定义备份的日期
backup_date=$(date +%Y%m%d%H%M%S)# 进入项目目录
cd /root/maven/spring-template# 拉取最新代码
git pull
echo "git pull success"# 构建项目
mvn clean package
echo "mvn package success"# 定义源jar文件路径和目标路径
source_jar="/root/maven/spring-template/jykj-modules/jykj-ims/target/jykj-ims.jar"
backup_dir="/jykj/ims/ims/bak"
current_jar="/jykj/ims/ims/jykj-ims.jar"# 检查源jar文件是否存在
if [ -f "$source_jar" ]; then# 备份旧jar文件cp "$current_jar" "${backup_dir}/jykj-ims.jar_${backup_date}"# 复制新jar文件到目标位置cp -f "$source_jar" "$current_jar"echo "cp jar success"
elseecho "Error: Source JAR file does not exist."exit 1
fiecho "Script completed successfully."

第六步:重启服务

sh springboot.sh restart

#!/bin/bash
#这里可替换为你自己的执行程序,其他代码无需更改
APP_NAME=jykj-ims.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,存在返回0if [ -z "${pid}" ]; thenreturn 1elsereturn 0fi
}#启动方法
start(){is_existif [ $? -eq "0" ]; thenecho "${APP_NAME} is already running. pid=${pid} ."elsenohup java -jar -Xms32M -Xmx128M $APP_NAME  --spring.config.location=/jykj/ims/ims/bootstrap.yml >> catalina.out 2>&1 &fi
}#停止方法
stop(){is_existif [ $? -eq "0" ]; thenkill -9 $pidelseecho "${APP_NAME} is not running"fi
}#输出运行状态
status(){is_existif [ $? -eq "0" ]; thenecho "${APP_NAME} is running. Pid is ${pid}"elseecho "${APP_NAME} is NOT running."fi
}#重启
restart(){stopstart
}#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in"start")start;;"stop")stop;;"status")status;;"restart")restart;;*)usage;;
esac

最终一条命令实现拉代码打包,重启,查看日志
sh package.sh && sh springboot.sh && tailf catalina.out

这篇关于Linux git pull maven package jar restart的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1059432

相关文章

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修