单体项目或定制化小应用,频繁发布会有些麻烦,用脚本实现git提交完代码自动发布,并完成jar包备份
1.前提条件:linux安装了JDK、Maven、Git
安装参考链接:
jdk安装
https://blog.csdn.net/weixin_44904239/article/details/137240064
git安装
https://blog.csdn.net/weixin_44966641/article/details/119791118
maven安装
https://blog.csdn.net/m0_52985087/article/details/136155283
2.使用mkdir建立项目目录,如 mkdir /usr/local/project/hope-ipcc-web/
touch web.sh
vim web.sh
打开脚本
bash
#!/bin/bash
APP_NAME="hope-ipcc-web" # 替换为您的应用名称
JAR_NAME="${APP_NAME}-1.0-SNAPSHOT.jar" # 替换为您的 JAR 文件名称
MAVEN_OPTS="-DskipTests" # Maven 打包选项,跳过测试
APP_DIR="/usr/local/project/hope-ipcc-web" # 替换为您的应用目录
# 查找占用特定端口的进程
netstat -tuln | grep ':8026'
# 查找并停止进程
PID=$(netstat -tulnp | grep ':8026' | awk '{print $7}' | cut -d'/' -f1)
if [ -n "$PID" ]; then
kill $PID
echo "删除成功..."
fi
echo "正在拉取git代码..."
# 克隆或更新代码
git clone your git address
cp hope-ipcc-web-1.0-SNAPSHOT.jar /usr/local/project/hope-ipcc-web/hope-ipcc-web-1.0-SNAPSHOT-back.jar
# 使用 Maven 打包
echo "使用 Maven 打包..."
cd hope-ipcc-parent/
mvn clean package -DskipTests -Denv=test -am -pl hope-ipcc-web
echo "进入web目录..."
cd /usr/local/project/hope-ipcc-web/hope-ipcc-parent/hope-ipcc-web/target
mv hope-ipcc-web-1.0-SNAPSHOT.jar /usr/local/project/hope-ipcc-web/
cd /usr/local/project/hope-ipcc-web/
# 启动新的 Java 应用
echo "启动新的 Java 应用..."
nohup java -jar "/usr/local/project/hope-ipcc-web/$JAR_NAME" --spring.profiles.active=test > /usr/local/project/hope-ipcc-web/web.log 2>&1 &
rm -rf /usr/local/project/hope-ipcc-web/hope-ipcc-parent
退出后使用 chmod + x web.sh,让这个脚本成为linux可执行的shell,然后在目录下执行./web.sh
最后效果图
然后使用ps -ef | grep java,查看Java进程
项目启动成功