使用Jenkins配合代码仓库【GitLab、GitHub、Gitee等】可以持续集成各类项目,这里主要记录使用Jenkins配合Github集成Maven项目并且自动构建与部署的全过程

配置Maven环境

可以在 Maven 官网直接下载war包,通过FTP工具上传到服务器,也可以通过wget命令下载到指定目录,命令如下:

# 创建目录
mkdir /usr/maven
# 打开目录
cd /usr/maven
wget https://mirror-hk.koddos.net/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz

解压Maven

tar -zxvf apache-maven-3.6.1-bin.tar.gz

配置环境变量

# 使用命令
vim /etc/profile

# 在末尾添加
export MAVEN_HOME=/usr/maven/apache-maven-3.6.1
export PATH=$PATH:$MAVEN_HOME/bin

# 使环境变量生效
source /etc/profile

测试

file

修改镜像源
配置完后最好修改下镜像源,使其能够快速的下载依赖,打开 setting.xml 在节点添加如下内容:

<mirror>
    <id>aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>https://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

Jenkins安装Maven插件

打开Jenkins的插件页面,在可选插件中搜索Maven,选择Maven Integration,直接安装

file

Jenkins 全局配置

使用前需要先配置环境,如Jdk环境,Maven环境,Git环境等,打开系统管理[Manage Jenkins] -> 全局工具配置[Global Tool Configuration]

file

往下滑,找到 Maven 安装,配置 Maven 环境

file

构建 JAR 项目

首先需要新建一个maven项目

file

配置代码源

file

配置构建触发器

file

这里选择 GitHub hook trigger for GITScm polling,在代码提交后就自动构建,在使用之前需要安装 Github 的插件,由于Jenkins在初始的时候已经默认安装了Git Plugin和相关依赖,因此不需要重复安装(码云与GitLab需要安装插件)

配置Github服务器

打开系统设置页面 -> Github 服务器

file

在这里需要添加访问凭证 Secret text

file

获取 Github 的访问凭证,打开 Github 首页,在 settings -> Developer settings -> Personal access tokens -> Generate new token

file

将生成的 access tokens 配置到 上一步的 Github 服务器中

file

配置Github Hook

打开 Github 中的项目, 在项目的 Settings 中选择 Webhooks -> Add webhook

file

配置构建环境

勾选 Use secret text(s) or file(s) 与 Add timestamps to the Console Output

file

配置 Build

clean install -Dmaven.test.skip=true -Ptest

file

Post Steps

经过上一个步骤之后,会在Jenkins的工作目录中 /root/.jenkins/workspace 的项目中的 target 文件夹中生成 Jar 文件

有了新的 Jar 文件后,我们需要写shell脚本完成如下功能:

  1. 杀掉原来的 Jar 进程

  2. 备份原Jar,方便回退

  3. 把新生成的 Jar 覆盖原来的

  4. 启动新 Jar 项目

脚本内容如下:

echo '开始启动项目'

# 当前时间
DATE=$(date +%Y%m%d_%H%M)

# 当天日期,用于创建备份目录
DATE_FILE=$(date +%Y%m%d)

# 项目存放的文件夹
DIR=/eladmin

# Jar的名称
JARFILE=eladmin-system-2.1.jar

# 判断路径是否存在,如果不存在则创建路径
if [ ! -d $DIR/backup ];then
   mkdir -p $DIR/backup
fi

# 定位到项目路径
cd $DIR

# 杀死原Jar进程
ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9 || echo '进程不存在'

# 创建备份目录
if [ ! -d $DIR/backup/$DATE_FILE ];then
   mkdir -p $DIR/backup/$DATE_FILE
fi

# 将老Jar文件移动到备份目录
mv $JARFILE backup/$DATE_FILE/$DATE$JARFILE || echo '文件不存在'

# 将新的Jar文件移动到项目目录
mv -f /root/.jenkins/workspace/cloudy/cloudy-core/target/$JARFILE .

# 启动项目
BUILD_ID=dontKillMe nohup java -jar $JARFILE --spring.profiles.active=prod &

echo '项目启动成功'

配置完成后,项目就会自动部署,只需要点击构建按钮或者提交代码后,jenkins就会自动拉去最新代码,然后备份、重启项目。

查看效果

file

最后修改:2019 年 10 月 21 日 03 : 00 PM