jenkins构建与自动部署maven项目

原创 2018-10-19 18:25 阅读(2968)次


一、构建环境

Jenkins,jdk1.8,git,maven

1. 构建前要查看jenkins服务器里是否安装jdk1.8,git,maven,其中maven不需要设置MAVEN_HOME环境变量,设置了会影响jenkins里的maven插件。

安装好后,在全局工具里配置:


maven配置文件:


Jdk


Git


Maven


 

2. 检查jenkins里的插件是否安装好Maven IntegrationGitlabPublish over SSH,依次按名称搜索直接安装


 

二、新建任务(新建你要构建的maven项目)


在我的视图里可以看到刚新建好的任务

 

三、配置

1. GitBucket

为了不使磁盘被占用太多,选择丢弃旧的构建,只保留7天的构建

2. 源码管理

我们使用的是git拉取代码,填写项目代码的git地址

 

3. Build

填写项目pom.xml文件的相对路径

 

4. 构建后操作

 

如果项目构建后需要部署到服务器里,就增加构建后操作步骤,选择:Send build artifacts over SSH

然后填写想要部署的服务器信息,服务器信息要事先在“系统管理”中的“系统设置”中先添加进去,在这边才能选择。

系统设置中的Publish over SSH设置如下:

然后在我们项目里的Send build artifacts over SSH中就可以选择刚设置好的服务器。

上面的配置是把构建好的war包发到131这台服务器的/usr/local/userapp/exportimage/目录中,并执行两条写好的部署脚本命令:

sh /usr/local/userapp/exportimage/backup.sh

sh /usr/local/userapp/exportimage/restart.sh

 

131服务器脚本信息如下:

四、构建

以上一个maven项目的配置就搞定了,就可以开始构建了

进入我们要构建的任务视图中,点击立即构建就可以开始了

在左下角的构建历史中就可以看到构建的情况

如果想要看到构建的详细信息可以点击构建历史并点“控制台输出”

 

构建成功并发布成功!然后登录到两台机查看jar包是否运行就可以了

 

五、附录

脚本:

backup.sh,保留七天文件夹:

 

#!/bin/bash

workdir=$(cd $(dirname $0); pwd)

filepath=`date +%Y%m%d%H%M%S`

 

if [ ! -d $workdir/backup ];then

      mkdir -p $workdir/backup

fi

find $workdir/backup/ -maxdepth 1  -mtime +7 -name "2*" -execdir rm -rf {} \;

mkdir $workdir/backup/$filepath

cp -rf $workdir/exportimage-0.0.1-SNAPSHOT.war $workdir/backup/$filepath/

 

重启脚本如下:

restart.sh:

 

#!/bin/bash

workdir=$(cd $(dirname $0); pwd)

sh "$workdir"/stop.sh

sleep 15

sh "$workdir"/start.sh

 

停止stop.sh:

 

#!/bin/bash

pid=`ps -ef|grep exportimage-0.0.1-SNAPSHOT.war |grep java |awk '{print $2}'`

if [ -n "$pid" ]

then

   kill -9 "$pid"

fi

 

启动start.sh:

 

#!/bin/bash

workdir=$(cd $(dirname $0); pwd)

nohup java -jar "$workdir"/exportimage-0.0.1-SNAPSHOT.war --spring.profiles.active=prod > /dev/null 2>&1 &