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

相关文章

IDEA中新建/切换Git分支的实现步骤

《IDEA中新建/切换Git分支的实现步骤》本文主要介绍了IDEA中新建/切换Git分支的实现步骤,通过菜单创建新分支并选择是否切换,创建后在Git详情或右键Checkout中切换分支,感兴趣的可以了... 前提:项目已被Git托管1、点击上方栏Git->NewBrancjsh...2、输入新的分支的

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM

IDEA Maven提示:未解析的依赖项的问题及解决

《IDEAMaven提示:未解析的依赖项的问题及解决》:本文主要介绍IDEAMaven提示:未解析的依赖项的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录IDEA Maven提示:未解析的依编程赖项例如总结IDEA Maven提示:未解析的依赖项例如

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

python如何调用java的jar包

《python如何调用java的jar包》这篇文章主要为大家详细介绍了python如何调用java的jar包,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录一、安装包二、使用步骤三、代码演示四、自己写一个jar包五、打包步骤六、方法补充一、安装包pip3 install