jenkins CI环境搭建

一、背景介绍
当前项目中,存在问题
■ 代码风格各异,同时缺少必要代码注释
■ 常出现空指针类似的基础bug
■ 代码单元测试缺失,测试场景覆盖不大
■ 重复代码大量出现
■ 转测试后,基础用例需要大量人力去验证
■ 其他:缺少性能测试
导致后果
■ 他人阅读代码困难,后期维护成本增加
■ 代码质量不高,后期维护成本增加
■ 开发成本增加,后期维护成本增加
■ 测试成本明显增加
因此需要一个持续代码集成,能够让开发或测试减少成本,提高质量工具,而jenkins正好可以与CI插件集成起来,实现这些功能。

二、解决方案

■ 代码风格各异,通过统一checkstyle样式来检查
■ 常出现空指针类似的基础bug,可以通过findbugs静态检查
■ 多余if或者try catch,可以通过pmd检查
■ 单元测试用例测试功能结果,可以通过junit报告检查
■ 大量重复代码,可以通过duplicate code报告来检查
■ 测试用例覆盖度,能够通过clover来检查
■ 基础功能,可以通过selenium自动化测试
■ 性能测试,可以通过jmeter来完成
虽然项目人员能够自己使用这些工具,完善代码,提高质量,但是却不方便项目统一管理。
而Jenkins能够集成这些插件,做到统一管理,解决项目问题。

Jenkins,之前叫做Hudson,是基于Java开发的一种持续集成工具,用于监控秩序重复的工作。
主要包括:
1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。
Jenkins能够集成各式插件,如常用CI插件:deploy,junit,findbugs,pmd,checkstyle,clover, duplicate code,jmeter,selenium等,
而这些工具正好可以解决项目存在一些问题。

jenkins与CI插件集成 - 小精灵 - web前端工作者
jenkins与CI插件集成 - 小精灵 - web前端工作者

三、实施方案

jenkins上CI插件安装
■ 手动安装
第一步,查询需要插件名称
https://wiki.jenkins-ci.org/display/JENKINS/Plugins
第二步,查询插件是否依赖其他插件
第三步,进入插件下载页面http://updates.jenkins-ci.org/download/plugins/?C=N;O=D,下载插件
第四步,将插件放到
${jenkins安装目录}/jenkins_home/plugins,手动重启服务。
即进去${jenkins安装目录}/tomcat7/bin,使用shutdown.sh与startup.sh关闭或者启动jenkins服务。
■ jenkins管理平台安装
第一步,进入jenkins管理平台,点击登录。(第一个注册的即为管理员)
第二步,点击左边菜单系统管理,在弹出页面中选择管理插件
第三步,点击可选插件,找到需要安装插件
勾选安装后重启或者先下载重启后再安装,也可以进入命令行手动重启jenkins。

jenkins上CI插件集成

Deploy插件主要作用:打包发布
第一步:下载插件并安装插件
下载weblogic-deployer-plugin.hpi(因为我们用的是weblogic服务器,其他tomcat,apache,jboss下载deploy.hpi插件)与依赖插件放到${jenkins安装目录}/jenkins_home/plugins目录,重启服务
第二步:项目JOB中配置构建信息

jenkins与CI插件集成 - 小精灵 - web前端工作者
jenkins与CI插件集成 - 小精灵 - web前端工作者

junit插件主要作用:单元测试,测试代码功能
第一步:下载插件并安装插件
下载javatest-report.hpi与依赖插件放到${jenkins安装目录}/jenkins_home/plugins目录,重启服务
第二步:项目JOB中配置构建信息

jenkins与CI插件集成 - 小精灵 - web前端工作者
jenkins与CI插件集成 - 小精灵 - web前端工作者

第三步:项目构建完成后,可以在刚才构建的buildID下面看到本次构建生成的junit报告信息


jenkins与CI插件集成 - 小精灵 - web前端工作者
jenkins与CI插件集成 - 小精灵 - web前端工作者

findbugs插件主要作用:静态代码检查,发现常见代码问题
第一步:下载插件并安装插件
下载findbugs.phi与依赖插件放到${jenkins安装目录}/jenkins_home/plugins目录,重启服务
第二步:项目JOB中配置构建信息

jenkins与CI插件集成 - 小精灵 - web前端工作者
jenkins与CI插件集成 - 小精灵 - web前端工作者

第三步:项目构建完成后,可以在刚才构建的buildID下面看到本次构建生成的findbugs报告信息


jenkins与CI插件集成 - 小精灵 - web前端工作者
jenkins与CI插件集成 - 小精灵 - web前端工作者

pmd插件主要作用:静态代码检查,发现常见代码问题,与findbugs类似
第一步:下载插件并安装插件
下载pmd.phi与依赖插件放到${jenkins安装目录}/jenkins_home/plugins目录,重启服务
第二步:项目JOB中配置构建信息

jenkins与CI插件集成 - 小精灵 - web前端工作者
jenkins与CI插件集成 - 小精灵 - web前端工作者

第三步:项目构建完成后,可以在刚才构建的buildID下面看到本次构建生成的pmd报告信息


jenkins与CI插件集成 - 小精灵 - web前端工作者
jenkins与CI插件集成 - 小精灵 - web前端工作者

checkstyle插件主要作用:检查代码风格样式
第一步:下载插件并安装插件
下载checkstyle.phi与依赖插件放到${jenkins安装目录}/jenkins_home/plugins目录,重启服务
第二步:项目JOB中配置构建信息

jenkins与CI插件集成 - 小精灵 - web前端工作者
jenkins与CI插件集成 - 小精灵 - web前端工作者

第三步:项目构建完成后,可以在刚才构建的buildID下面看到本次构建生成的checkstyle报告信息


jenkins与CI插件集成 - 小精灵 - web前端工作者
jenkins与CI插件集成 - 小精灵 - web前端工作者

clover插件主要作用:检查代码单元测试的覆盖率,主要指标:行覆盖率,分支覆盖率,方法覆盖率
第一步:下载插件并安装插件
下载checkstyle.phi与依赖插件放到${jenkins安装目录}/jenkins_home/plugins目录,重启服务(clover有收费和试用)
第二步:项目工程配置JOB中配置构建信息
<plugin>
<groupId>com.atlassian.maven.plugins</groupId>
<artifactId>maven-clover2-plugin</artifactId>
<version>3.1.8</version>
<configuration>
<generateXml>true</generateXml>
</configuration>
</plugin>

jenkins与CI插件集成 - 小精灵 - web前端工作者
jenkins与CI插件集成 - 小精灵 - web前端工作者

jenkins与CI插件集成 - 小精灵 - web前端工作者
jenkins与CI插件集成 - 小精灵 - web前端工作者

第三步:项目构建完成后,可以在刚才构建的buildID下面看到本次构建生成的clover报告信息
jenkins与CI插件集成 - 小精灵 - web前端工作者
jenkins与CI插件集成 - 小精灵 - web前端工作者

jenkins与CI插件集成 - 小精灵 - web前端工作者
jenkins与CI插件集成 - 小精灵 - web前端工作者

duplicate code插件主要作用:检查代码中重复代码块的情况
第一步:下载插件并安装插件
下载dry.phi与依赖插件放到${jenkins安装目录}/jenkins_home/plugins目录,重启服务
第二步:项目工程配置JOB中配置构建信息

jenkins与CI插件集成 - 小精灵 - web前端工作者
jenkins与CI插件集成 - 小精灵 - web前端工作者

第三步:项目构建完成后,可以在刚才构建的buildID下面看到本次构建生成的重复代码报告信息


jenkins与CI插件集成 - 小精灵 - web前端工作者
jenkins与CI插件集成 - 小精灵 - web前端工作者

第一步:下载插件并安装插件
下载createjobadvanced.phi与依赖插件放到${jenkins安装目录}/jenkins_home/plugins目录,重启服务
第二步:项目JOB中配置构建信息

jenkins与CI插件集成 - 小精灵 - web前端工作者
jenkins与CI插件集成 - 小精灵 - web前端工作者

第三步:配置定时后,系统会在指定时间自动构建

Crontab格式:f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式。

第一步:下载插件并安装插件
下载email-ext对应的*.hpi与依赖插件放到${jenkins安装目录}/jenkins_home/plugins目录,重启服务
第二步:项目JOB中配置构建信息
在”Post-build Actions”选项中,不选择”Email Notification”标签,而勾选”Editable Email Notification”标签。并在Global Recipient List中填入接收邮件的地址,其它默认即可。

四、结论

通过jenkins与CI集成
■ 能够每天监控项目代码,控制项目风险
■ 提高代码质量,减少后期开发,维护或测试成本,
■ 能够完成基础测试场景自动化测试,减少测试成本

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容