如何实现linux系统一键gitee拉取java代码maven打包并启动服务(启动脚本)
总的步骤分为:1检查git是否安装。2.linux设置git全局用户名密码.3.git拉取项目及分支到linux目录4.linux安装maven。5编写脚本,一键启动服务
一、.查看git版本,一般linux系统都自带git。
git version
二、linux git 设置全局用户名密码
git config --global user.name "Your Name" git config --global user.password"your password"
或者使用ssh密钥
生成 SSH 密钥对(如果还没有):
sh复制代码ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
将生成的公钥(通常位于
~/.ssh/id_rsa.pub)添加到你的 Git 服务器帐户中。
三.git拉取代码
1.导航到目标目录:你想将仓库放在你的主目录下的 projects 文件夹中,运行
cd ~/projects
2.使用 git clone 命令来克隆远程仓库
git clone https://git.com/username/repository-name.git
3.(可选)进入仓库目录:如果你想立即进入克隆的仓库目录,可以运行:
cd repository-name
4.拉取更新(如果你已经有一个本地仓库)如果你已经有一个本地仓库并且只是想拉取最新的更改,你可以导航到仓库目录并运行:
git pull origin branch-name
其中 origin 是远程仓库的默认名称,branch-name 是你想要拉取的分支名称。例如,如果你要拉取 main 分支:
git pull origin main
四.linux安装maven
1.方法一:使用包管理器安装。
Ubuntu/Debian 系统安装 Maven:(如果是root用户,请自行去掉sudo)
sudo apt install maven -y
验证安装:
mvn -v
CentOS/RHEL 系统安装 Maven:
sudo yum install maven -y
2方法二:手动下载并安装
五.写一个启动脚本java-run.sh。内容为:根据需要修改。将文件直接放到root下面
#!/bin/bash
# 定义变量
TARGET_DIR="/project/wisdom" # 替换为你的代码库路径
DEFAULT_BRANCH="pro1" # 默认分支
JAR_NAME="ruoyi-admin.jar" # 替换为生成的 JAR 文件名
LOG_FILE="/var/log/ruoyi-admin.log" # 替换为你的日志文件路径
JAVA_OPTS="-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m" # Java 启动参数,可根据需求调整
# 检查是否安装了必要工具
check_dependencies() {
for cmd in git mvn java; do
if ! command -v $cmd &> /dev/null; then
echo "Error: $cmd is not installed. Please install it first."
exit 1
fi
done
}
# 更新代码
update_code() {
local branch=$1
if [ -d "$TARGET_DIR" ]; then
echo "Updating repository in $TARGET_DIR for branch $branch..."
cd "$TARGET_DIR" || exit
# 切换到指定分支
git fetch
git checkout "$branch" || {
echo "Error: Branch $branch does not exist."
exit 1
}
git pull origin "$branch"
if [ $? -ne 0 ]; then
echo "Error: Failed to update code. Please check the repository."
exit 1
fi
else
echo "Error: Directory $TARGET_DIR does not exist. Please check the path."
exit 1
fi
}
# 打包代码
build_project() {
echo "Building project..."
mvn clean package -DskipTests
if [ $? -ne 0 ]; then
echo "Error: Maven build failed."
exit 1
fi
}
# 启动服务
start_service() {
JAR_PATH="$TARGET_DIR/ruoyi-admin/target/$JAR_NAME"
if [ ! -f "$JAR_PATH" ]; then
echo "Error: $JAR_NAME not found in target directory."
exit 1
fi
# 杀掉旧进程
PID=$(ps -ef | grep "$JAR_NAME" | grep -v "grep" | awk '{print $2}')
if [ -n "$PID" ]; then
echo "Stopping existing service (PID: $PID)..."
kill -9 "$PID"
fi
# 后台运行服务
echo "Starting new service..."
nohup java $JAVA_OPTS -jar "$JAR_PATH" > "$LOG_FILE" 2>&1 &
if [ $? -eq 0 ]; then
echo "Service started successfully. Logs: $LOG_FILE"
else
echo "Error: Failed to start the service."
exit 1
fi
}
# 主逻辑
main() {
check_dependencies
# 获取分支名,如果未指定,使用默认分支
local branch=${1:-$DEFAULT_BRANCH}
update_code "$branch"
build_project
start_service
}
# 执行脚本,传递分支名作为参数
main "$1"六、直接在root用户下,输入以下命令,即可实现一键拉取git最新代码并maven打包后,自动重启服务。
./java-run.sh

七、实时查看项目运行日志命令:
tail -f /var/log/java-service.log
本文原创,转载必追究版权。
