专栏的前面几篇博客已经把jenkins和gitlab集成起来了,接着我们开始打包,部署发布maven项目

第一步 在jenkins容器中安装maven

首先在jenkins中安装maven,docker安装的maven默认安装了java,但是没有安装maven,所以这里我们需要自己进入到jenkins容器中,然后安装maven。

我这里的maven是自己在官网传送门下载的最新版maven3.9.0.tar.gz,

jenkins java项目打包部署 jenkins打包发布_maven

然后通过FileZilla Client传送到linux服务器,然后再通过docker cp传送到jenkins容器下进行安装的;

安装就是将解压后的maven直接放到某个目录下,我这里放到了/opt目录下。

然后到maven的conf目录下修改maven的setting.xml的内容,主要是修改本地仓库位置和远程仓库镜像(这里远程仓库使用的是阿里巴巴的)

jenkins java项目打包部署 jenkins打包发布_jenkins_02


jenkins java项目打包部署 jenkins打包发布_maven项目_03


最后我们需要配置maven的环境变量:

jenkins java项目打包部署 jenkins打包发布_maven项目_04

执行命令
source /etc/profile
mvn -v

如果成功输出了版本信息,表示maven已经安装完成。
接下来我们就需要在jenkins中的maven项目中配置相关信息了。不过这里有一点要先说明,就是首先要搭建好自己的一台远程服务器,具体的搭建过程这里就不再叙述。详细的搭建过程可看传送门

第二步在jenkins中新建maven项目,并且配置maven项目相关的属性

首先我们需要进入到系统管理,然后配置maven相关的全局属性:

jenkins java项目打包部署 jenkins打包发布_maven_05


接着就配置 Publish over SSH,我这里配置的是用用户名和密码登陆的,这里的都是和远程服务器相关的。

jenkins java项目打包部署 jenkins打包发布_maven_06


这里配置完我们可以点击test connection测试一下,success的话就可以了。

接着我们可以在jenkins中新建一个maven项目:

jenkins java项目打包部署 jenkins打包发布_jenkins_07


然后配置maven项目相关的属性:

jenkins java项目打包部署 jenkins打包发布_maven_08


jenkins java项目打包部署 jenkins打包发布_java_09

首先配置的是Jenkins拉去项目的源以及编译时的jdk版本(这里需要jenkins安装jdk-parameter插件才能使用多版本jdk)。

接着我们配置触发器和构建环境:

按照图中勾选即可

jenkins java项目打包部署 jenkins打包发布_maven项目_10


接着我们开始配置编译过程和ssh:

jenkins java项目打包部署 jenkins打包发布_jenkins java项目打包部署_11


jenkins java项目打包部署 jenkins打包发布_maven项目_12


图中的exec command:

BASE_HOME=/root/data
JAR_NAME=Test-0.0.1-SNAPSHOT.jar
LOG_NAME=out.log
# 停止应用
ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}' | xargs -i kill {}
# 备份日志
if [ -f $BASE_HOME/$LOG_NAME ]; then
    mv $BASE_HOME/$LOG_NAME $BASE_HOME/$LOG_NAME.`date +%Y%m%d%H%M%S`
fi
# 备份jar包
if [ -f $BASE_HOME/$JAR_NAME ]; then
    cp $BASE_HOME/$JAR_NAME $BASE_HOME/$JAR_NAME.`date +%Y%m%d%H%M%S`
fi
#启动应用
nohup java -jar $BASE_HOME/$JAR_NAME &>$BASE_HOME/$LOG_NAME &

这里的表示我们在远程服务器的目录是/root/data。jenkins编译并打包完成,会将包自动发送到远程服务器的/root/data目录下,并且在此目录下自动发布并运行。

成功编译结果如下:

jenkins java项目打包部署 jenkins打包发布_jenkins_13


我们看到编译打包后的包也传送到了远程服务器上,并且运行了:

jenkins java项目打包部署 jenkins打包发布_java_14


jenkins java项目打包部署 jenkins打包发布_jenkins_15

这里关于gitlab与Jenkins集成并且打包,部署maven项目的一整条流程就完成了。后续我们只要编码完成,把代码提交到gitlab后,直接手动在jenkins中点击编译部署即可。当然你也可以配置自动编译并发布,就是一旦提交到gitlab就立即自动发布,但是这种相对来讲在比较浪费资源,因为在实际生产中,如果公司没有review机制的话,我们会经常提交代码到gitlab,会导致Jenkins经常性的自动部署发布,很影响开发。所以一般配置手动打包发布即可。