Jenkins+Gitlab+Maven集成CI/CD

Maven+Gitlab集成

配置好下列环境

# Java环境
JAVA_HOME
/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64

# Maven环境
MAVEN_HOME
/usr/local/maven

# Maven环境变量
PATH+EXTRA
$MAVEN_HOME/bin

Jenkins+Gitlab+Maven集成CI/CD_第1张图片

Jenkins+Gitlab+Maven集成CI/CD_第2张图片

1. 配置settings.xml路径

Jenkins+Gitlab+Maven集成CI/CD_第3张图片

2. 安装maven插件

Jenkins+Gitlab+Maven集成CI/CD_第4张图片

创建项目

Jenkins+Gitlab+Maven集成CI/CD_第5张图片

配置gitlab地址和指定分支

Jenkins+Gitlab+Maven集成CI/CD_第6张图片

3. 指定你要进行的maven操作和pom文件地址

mvn clean && mvn package

Jenkins+Gitlab+Maven集成CI/CD_第7张图片

4. 构建成功后执行自定义的脚本

Jenkins+Gitlab+Maven集成CI/CD_第8张图片

脚本如下

#!/bin/bash

# 查找占用7777端口的进程ID
# PID=$(sudo lsof -t -i :7777 | awk 'NR==2{print $2}')
PID=$(sudo lsof -t -i :7777)

if [ -z "$PID" ]; then
  echo "Port 7777 is not in use."
else
  # 终止进程
  kill $PID
  echo "Process with PID $PID has been terminated."
fi

# 创建时间戳文件夹
timestamp=$(date +%Y%m%d%H%M%S)
folder_name="jar_$timestamp"
cd /opt/test
sudo mkdir "$folder_name"

# 源目录
source_dir="/var/lib/jenkins/workspace/maven_test2/target"
# 目标目录
target_dir="/opt/test/$folder_name"

# 复制目录下的所有文件到目标目录
sudo cp -r "$source_dir"/* "$target_dir"

# 输出打印
echo "文件夹创建成功:$folder_name"

# 进入新建的文件夹下
cd $folder_name
jar_files=$(ls -d *.jar | awk -F/ '{print $NF}')

if [ -n "$jar_files" ]; then
  echo "找到以下.jar文件:"
  echo "$jar_files"
else
  echo "未找到任何.jar文件"
fi

#启动jar包
#java -jar $jar_files

#后台启动
sudo nohup java -jar $jar_files &

查看控制台日志,第一次部署可能下载jar包比较慢

Jenkins+Gitlab+Maven集成CI/CD_第9张图片

访问服务器,成功!

Jenkins+Gitlab+Maven集成CI/CD_第10张图片

你可能感兴趣的:(Jenkins实战,jenkins,gitlab,maven,docker,容器,运维)