如何实现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
本文原创,转载必追究版权。