在配置界面,可以去设置超时,如下

可以在这里设置超时

还有一个地方需要注意,如下,命令可能在服务器上没有运行成功

比如,我在服务器上直接运行这行命令,如下

我们会发现,运行是会失败的
所以,我们需要将这一行命令进行优化,如下:将日志输出到mylog.log文件里面
nohup java -jar /root/xxoo/demo*.jar >mylog.log 2>&1 &
命令说明:博客
将其修改为下面的内容

之前,我们需要在每次启动前都去kill掉之前的进程,现在可以在Pre Steps里面去设置启动前去清理进程等内容
进入任务的配置。如下,选择Pre Steps

在这里,我们在运行项目前面,将之前运行的jar包删除掉,进程关闭掉,将之前运行的数据和痕迹删除掉
首先,点击选项,选择红框内容

过后,会出现下面的内容

在红框里面,其已经自动选择了之前我们设置的目标服务器地址,现在我们便需要在下面的Exec command里面输入一些命令,由于命令有多行,所以在这里我们便需要去写一些shell脚本,如下:
脚本内容为:
#!/bin/bash
#删除历史数据
rm -rf xxoo
#获取传入的参数,
appname=$1
echo "arg:$1"
#获取正在运行的jar包pid
pid=`ps -ef | grep $1 | grep 'java -jar' | awk '{printf $2}'`
echo $pid
#如果pid为空,提示一下,否则,执行kill命令
if [ -z $pid ];
#使用-z 做空值判断
#为空的话
then
echo "$appname not started"
else
kill -9 $pid
echo "$appname stoping...."
# 精确匹配
check=`ps -ef | grep -w $pid | grep java`
if [ -z $check ];
then
echo "$appname pid:$pid is stop"
else
echo "$appname stop failed"
fi
fi
删除历史数据:
获取现在正在运行的pid

获取传入的参数

返回之前的Pre Steps ,去配置参数,如下:

保存完之后,进行运行,如下:

这样在运行之前,会将之前的痕迹给删除掉
注:现在每次提交了(Push)代码后,过后再在git上将代码合并到Jenkins上配置的分支上,最后重新运行一下构建,这样提交的代码才会正式生效
那么,如果想要在这个过程中完成自动化的构建,即只要我提交了代码,将代码合并到对应的分支,Jenkins便去完成自动化的构建,不需要再去点一下构建,这种功能的实现可以使用git的钩子机制
进入之前项目的配置,选择“构建触发器”,如下:在这里可以去选择在什么条件下去构建

将“触发远程构建XX”这个选项勾选上,然后会出现需要输入的一个框,在这个里面去配置一个url,去进行调用

上面标记的url,需要在git上进行配置,表示代码一旦提交,这样git那边便会去向这个url去发起回调的钩子去,如下

如上,git上有一个事件机制,去进行回调Jenkins上的一个接口,去进行构建
首先,我们需要在Jenkins上进行配置
进入任务的配置中,选择“构建触发器”,将“触发远程构建XXX”勾选上,配置一个身份令牌,下面提示的url便是在git上需要使用的url





按以前的步骤,进入插件管理里面,安装下面的插件

勾选上后,进行安装,实现免登陆

安装上后,查看其文档,后面去发起请求的话,便需要去调用下面的接口:buildByToken/build>job=first&token=xxx

现在使用postman发起请求

现在便可以匿名的去访问了
进入对应项目的设置里面,点击webhooks

在其右边进行对应的配置


过后,点击Add webhook
有可能会出现下面的报错
这个并不是地址报错了,而是这个请求不支持,
解决如下
- 切换管理员的身份
- 配置网络的一些参数,按下面的配置,过后保存更改
- 按之前的步骤重新去添加webhook即可
添加上后,该页面的下面便会出现如下的内容

测试
发起push请求,结果如下

再次发起一个merge请求


上面的测试都成功了,下面便正式去提交代码,通过测试,结果是没有问题的(测试过程便不展示了),反正就是本地的idea等工具进行commit后,便会自动去启动,和上面的测试结果都差不多
代码commit后,内容还是之前的,因为代码是还没有合并的,需要再去合并后,才是最新的结果
这里便有一个问题,将代码commit,push的时候,会去创建一次任务;在合并分支的过程中还会去创建一次任务,合并成功后,需要admin去进行真正的合并,这里又会创建一次任务;一共创建了三次任务
这里便比较重复和多余
有下面几种构建方式:



将项目关联到GitHub上,与之前关联gitlab有点类似

这个是Jenkins去主动发起请求,去检查

corn表达式:博客
当项目构建失败或出问题了,去通知相关的人员
在这里使用163的SMTP服务器,作为发件的邮箱

将上面的密码保存下来
在这里,使用QQ邮箱作为收件邮箱
第一步:进入配置界面


第二步:配置Jenkins Location

第三步:配置Extended E-mail Notification (这是一种比较个性化的通知,在这里可以去配置触发了什么事件才会去进行发送邮件)





第四步:配置(这是一种系统的通知,当一种比较严重的问题出现时,才会发送邮件),这里的配置与之前的配置差不多

配置完成后,可以进行测试

收到的邮件

如果没有发送正确,可以看上面的日志
在这里去设置一下用户组的内容,这里发邮件的动作便会往这些用户进行发送
