CI/CD——Jenkins自动构建maven项目

1123 篇文章 44 订阅
631 篇文章 11 订阅

一个完整的jenkins构建maven流程。

一、服务器安装jenkins

1、打开jenkins官网,可以查看中文文档

https://www.jenkins.io/zh/

2、下载jenkins的war包:

https://www.jenkins.io/zh/download/

3、将war包放到服务器上,按照下面的指令安装jenkins:

4、安装完成之后更改jenkins代理,google改成baidu:

vim /root/.jenkins/updates/default.json

二、服务器安装maven

1、打开maven官网并下载安装包传到服务器上

https://maven.apache.org/download.cgi

2、解压安装包并移动目录到环境变量里

tar -zxvf apache-maven-3.8.6-bin.tar.gzmv apache-maven-3.8.6 /usr/local/maven

3、验证maven是否成功,出现以下指令表示成功

/usr/local/maven/bin/mvn -v

三、IDEA新建一个maven项目,详见快速创建一个maven项目

四、jenkins里新建一个maven项目

1、先安装git和maven插件

2、创建一个maven项目

3、填git项目的http地址(jenkins服务器上面也需要安装git):

4、对应git目录的地址,在根目录下就直接写pom.xml

5、Global Tool Configuration里配置maven信息

五、ssh文件传输,构建了jar包之后我们通过ssh将jar包传至测试服务器

1、先安装ssh插件

2、Configure System里配置ssh servers,这样项目构建完jar包之后会把jar包传到目标服务器的根目录/data下

3、修改项目的poststeps(构建之后的动作),

打开SSH Server的详细配置

4、执行jenkins的job,文件传输成功并自动启动jar包,页面可以访问了。

六、执行前动作

jar包启动时我们执行job会提示端口冲突,这个时候我们需要配置一个执行前动作,启动jar包前先把jenkins的进程kill掉。

这个很好理解了,执行目标服务器上的x.sh脚本

x.sh脚本:​​​​​​​

#!/bin/bash
# 删除历史数据rm -rf java_project/*
# 获取传入的参数echo "arg:$1"
# 获取正在运行jar包pidpid=`ps -ef|grep $1 | grep 'java -jar' | awk '{printf $2}'`
echo $pid
# 如果pid为空,给提示但不执行删除,不为空则执行删除# -z 空值判断if [ -z $pid ];        then                echo "$1 not started"        else                kill -9 $pid                echo "$1 is stoping ..."fi
check=`ps -ef | grep -w 95234 | grep 'java -jar'`
if [ -z $check ];        then               echo "$1 pid:$pid is stoped"       else               echo "$1 pid:$pid stop failed"fi

七、设置webhook自动构建

每次git push代码的时候触发构建maven

1、jenkins修改项目配置,添加一个构建触发器,随便输入一个自己喜欢的身份验证令牌

webhook原地址为一个get地址:

JENKINS_URL/job/first/build?token=123123

使用这个地址有个问题是,必须要登录才可用,所以我们再添加一个插件可以免登陆访问

2、安装下图插件——使用webhook的时候可以免登陆

安装了插件之后webhook地址更改为:

http://JENKINS_SITE/buildByToken/build?job=NAME&token=SECRET

浏览器输入地址:

可以看到jenkins项目触发成功

3、gitlab上设置项目,配置webhook。

Trigger为触发事件(在什么时候触发webhook),默认是push代码的时候触发。

4、配置好之后在本地push一次,看看jenkins有没有触发job。

八、配置邮件

jenkins自带发送邮件的功能,我们可以自行配置每次触发job,或者job出错时发送邮件

1、新浪邮箱或者其他邮箱开启POP3/SMTP服务

2、在jenkins的Configure System里填写邮箱地址

填写发送邮件的用户名密码

3、更改邮件通知

4、更改项目配置——构建后操作,新建Editable Email Notification

5、在高级设置里编辑Trigger触发器,在任何情况触发了构建都会给developer和构建user发邮件。

记得设置用户邮箱地址

6、保存之后重新触发任务,查看日志和邮件

邮件发送成功!


学习资源分享

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值