解决问题与集成通知
目录
- 1、解决中文乱码
- 2、解决无法收到邮件
- 3、解决HTML报告显示不正常
- 4、集成SLACK实现事件实时通知
- 5、集成钉钉实现事件实时通知
1、解决中文乱码
以Widnows为例
当Jenkins部署在Tomcat里时,执行Jenkins,Jenkins控制台输出中文会显示乱码。
解决办法:
1、本机系统增加环境变量。
鼠标选中我的电脑右键,点击属性--->高级系统配置--->高级--->环境变量。
点击环境变量,系统变量里:
代码语言:javascript复制点击新建
变量名填写 JAVA_TOOL_OPTIONS
变量值填写 -Dfile.encoding=UTF-8
2、打开Tomcat安装目录下的bin文件夹,里面有个catalina.bat文件,修改此文件。
代码语言:javascript复制搜索:
set "JAVA_OPTS=%JAVA_OPTS% -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"
添加:
-Dfile.encoding=UTF-8
修改后:
set "JAVA_OPTS=%JAVA_OPTS% -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dfile.encoding=UTF-8"
如图所示:修改后的catalina.bat文件。
3、Jenkins配置环境变量。
系统管理--->系统设置--->全局属性,选中环境变量,添加对应的键值对。
代码语言:javascript复制键 JAVA_TOOL_OPTIONS 值 -Dfile.encoding=UTF-8
键 LANG 值 zh.CH.UTF-8
如图所示:
2、解决无法收到邮件
一、问题:
系统设置里的邮件通知配置完后发送测试邮件是成功的,并且也能收到邮件。
但是项目构建结束,发送邮件日志,虽然显示已经发送邮件了,但是没有收到邮件。
二、解决:
1、系统设置里的Jenkins Location管理员邮件地址必须与Extended E-mail Notification、邮件通知里的邮件地址一致。
2、重新配置一次Extended E-mail Notification(例如:重新输入一次密码),保存后,再次执行项目就可以收到邮件了。
3、解决HTML报告显示不正常
一、问题:
1、如图所示:项目的测试报告(HTML Report)为.html格式。
2、打开发现报告显示不全,样式丢失。
二、解决:
1、系统管理--->脚本命令行。
2、输入以下参数,点击运行。
代码语言:javascript复制System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
3、再次执行脚本,查看新生成的测试报告,如图所示:显示正常。
4、集成Slack实现事件实时通知
Slack是一个企业内部沟通协作工具,提供群组聊天和直接消息发送功能,支持移动端、Web 和桌面平台。
官方网址:https://slack.com/
Jenkins的Slack插件:https://github.com/jenkinsci/slack-plugin
桌面端下载地址:
Windows:https://slack.com/downloads/windows
Mac:https://slack.com/downloads/mac
Linux:https://slack.com/downloads/linux
移动端下载地址:
iPhone:https://slack.com/downloads/ios
Android:https://slack.com/downloads/android
Windows Phone:https://slack.com/downloads/winphone
1、创建Slack账号
登录官网https://slack.com/,点击GET STARTED。
之后点击Create a new workspace。
输入邮箱地址,之后点击Confirm。
之后邮箱会收到验证码,填写此处。
给公司或团队起个名字,例如MYTEST,点击Next。
给项目起个名字,例如MYTEAM,点击Next。
创建完成,点击See Your Channel in Slack。
进入后界面。
如图所示:MYTEST工作区URL为mytest-wvc8978.slack.com
2、查看Jenkins集成Slack的配置信息
登录网址:https://my.slack.com/services/new/jenkins-ci
如图所示:未登录,则先输入之前已创建的MYTEST工作区URL(mytest-wvc8978.slack.com),之后点击Continue。
之后输入邮箱与密码进行登录即可。
如图所示:已登录,选择频道(之前创建完成的MYTEAM项目),点击Add Jenkins CI integration
如图所示:显示的集成设置信息,频道、Token。
注意:记住设置说明的第3步,Base URL、Integration Token。
之后点击Save Settings即可。
3、在Jenkins中安装Slack插件
登录Jenkins,系统管理--->插件管理,搜索Slack Notification并进行安装。
安装完成后,系统管理--->系统设置--->Global Slack Notifier Settings,填写Slack的配置信息Base URL、Integration Token,其他字段为可选(可不填),最后保存即可。
4、应用到Jenkins项目里
进入Jenkins已创建完成的项目,点击配置,构建后操作添加Slack Notifications。
如图所示:根据需求,勾选不同的通知选项。
注意:可单个任务配置(只针对所设置项目,项目配置里,在Slack Notifications里配置Base URL、Integration Token),也可进行全局设置(所有的项目,在系统管理--->系统设置--->Global Slack Notifier Settings里配置Base URL、Integration Token)。
如图所示:Slack Notifications里Base URL、Integration Token为空,则使用的是全局设置。点击Test Connection,调试配置是否成功。
配置完成后,执行Jenkins项目,消息发送到Slack上。
如图所示:Web网页显示效果。
如图所示:移动端显示效果。
5、集成钉钉实现事件实时通知
钉钉,阿里巴巴出品,专为全球企业打造的免费智能移动办公平台。智能办公电话,消息已读未读,DING消息任务管理,让沟通更高效;移动办公考勤,签到,审批,企业邮箱,企业网盘,企业通讯录,让工作更简单。
官方网址:https://www.dingtalk.com/
PC端、移动端下载地址:https://tms.dingtalk.com/markets/dingtalk/download
1、配置钉钉
打开钉钉PC端,进入某个群(例如TEST群),打开群设置--->群机器人。
注意:如果你不是群主或管理员,且群主开启了仅群主和管理员可管理,那么你将无法创建机器人。
选择自定义机器人。
点击添加。
填写机器人名字(例如:Jenkins消息通知),点击完成。
复制webhook地址(此处将用于Jenkins当中的参数配置)。
如图所示:配置完成后,机器人会默认发送一条消息。
2、配置Jenkins
(1)安装插件
登录Jenkins,系统管理--->管理插件--->可选插件。
搜索:Dingding[钉钉],选中直接安装即可。
搜索:Dingding JSON Pusher,选中直接安装即可。
(2)发送默认消息配置
进入Jenkins某个项目(例如Test),进入配置,构建后操作添加钉钉通知器配置,将之前复制的钉钉webhook地址复制到钉钉access token里。再勾选需要的通知。
代码语言:javascript复制例如URL为 https://oapi.dingtalk.com/robot/send?access_token=1dcaabdd430273acc91a9067d8814dd522411febcb5802328ad381674f1d22e9
只需要复制 1dcaabdd430273acc91a9067d8814dd522411febcb5802328ad381674f1d22e9 即可
注意:Jenkins URL配置中需要在最后添加"/",要不然会导致拼接的Url出错,这里填写有问题会导致无法从钉钉中跳转到Jenkins任务。
保存项目后进行执行,此时钉钉会收到通知信息,点击某个通知,会跳转到Jenkins,登陆后跳转到此项目的构建页面。
如图所示:PC端显示效果。
如同所示:移动端显示效果。
(3)发送自定义消息配置
还是在此项目(Test)进行配置,构建后操作添加Dingding Json Pusher,将之前复制的钉钉webhook地址复制到钉钉access token里。
代码语言:javascript复制例如URL为 https://oapi.dingtalk.com/robot/send?access_token=1dcaabdd430273acc91a9067d8814dd522411febcb5802328ad381674f1d22e9
只需要复制 1dcaabdd430273acc91a9067d8814dd522411febcb5802328ad381674f1d22e9 即可
之后再创建dingding.json文件,Json文件路径填写全路径地址(例如dingding.json文件放到了D盘根目录下)。
dingding.json文件模板内容:
代码语言:javascript复制{
"msgtype": "text",
"text": {
"content": "在这填写自定义内容"
}
}
例如填写为:
代码语言:javascript复制{
"msgtype": "text",
"text": {
"content": "IOS自动打包构建成功!n下载地址:ftp://10.53.29.69/app/ios"
}
}
保存项目后进行执行,此时钉钉除了可接收默认通知消息,还可接收到自定义通知消息。
如图所示:PC端显示效果。
如同所示:移动端显示效果。