一个完整的jenkins构建maven流程。
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
1、打开maven官网并下载安装包传到服务器上
https://maven.apache.org/download.cgi
2、解压安装包并移动目录到环境变量里
tar -zxvf apache-maven-3.8.6-bin.tar.gz
mv apache-maven-3.8.6 /usr/local/maven
3、验证maven是否成功,出现以下指令表示成功
/usr/local/maven/bin/mvn -v
四、jenkins里新建一个maven项目
1、先安装git和maven插件
2、创建一个maven项目
3、填git项目的http地址(jenkins服务器上面也需要安装git):
4、对应git目录的地址,在根目录下就直接写pom.xml
5、Global Tool Configuration里配置maven信息
1、先安装ssh插件
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包pid
pid=`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
每次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、保存之后重新触发任务,查看日志和邮件
邮件发送成功!
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走
这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….