jenkins CI環(huán)境搭建

一、背景介紹
當(dāng)前項(xiàng)目中,存在問(wèn)題
■ 代碼風(fēng)格各異,同時(shí)缺少必要代碼注釋
■ 常出現(xiàn)空指針類(lèi)似的基礎(chǔ)bug
■ 代碼單元測(cè)試缺失,測(cè)試場(chǎng)景覆蓋不大
■ 重復(fù)代碼大量出現(xiàn)
■ 轉(zhuǎn)測(cè)試后,基礎(chǔ)用例需要大量人力去驗(yàn)證
■ 其他:缺少性能測(cè)試
導(dǎo)致后果
■ 他人閱讀代碼困難,后期維護(hù)成本增加
■ 代碼質(zhì)量不高,后期維護(hù)成本增加
■ 開(kāi)發(fā)成本增加,后期維護(hù)成本增加
■ 測(cè)試成本明顯增加
因此需要一個(gè)持續(xù)代碼集成,能夠讓開(kāi)發(fā)或測(cè)試減少成本,提高質(zhì)量工具,而jenkins正好可以與CI插件集成起來(lái),實(shí)現(xiàn)這些功能。

二、解決方案

■ 代碼風(fēng)格各異,通過(guò)統(tǒng)一checkstyle樣式來(lái)檢查
■ 常出現(xiàn)空指針類(lèi)似的基礎(chǔ)bug,可以通過(guò)findbugs靜態(tài)檢查
■ 多余if或者try catch,可以通過(guò)pmd檢查
■ 單元測(cè)試用例測(cè)試功能結(jié)果,可以通過(guò)junit報(bào)告檢查
■ 大量重復(fù)代碼,可以通過(guò)duplicate code報(bào)告來(lái)檢查
■ 測(cè)試用例覆蓋度,能夠通過(guò)clover來(lái)檢查
■ 基礎(chǔ)功能,可以通過(guò)selenium自動(dòng)化測(cè)試
■ 性能測(cè)試,可以通過(guò)jmeter來(lái)完成
雖然項(xiàng)目人員能夠自己使用這些工具,完善代碼,提高質(zhì)量,但是卻不方便項(xiàng)目統(tǒng)一管理。
而Jenkins能夠集成這些插件,做到統(tǒng)一管理,解決項(xiàng)目問(wèn)題。

Jenkins,之前叫做Hudson,是基于Java開(kāi)發(fā)的一種持續(xù)集成工具,用于監(jiān)控秩序重復(fù)的工作。
主要包括:
1、持續(xù)的軟件版本發(fā)布/測(cè)試項(xiàng)目。
2、監(jiān)控外部調(diào)用執(zhí)行的工作。
Jenkins能夠集成各式插件,如常用CI插件:deploy,junit,findbugs,pmd,checkstyle,clover, duplicate code,jmeter,selenium等,
而這些工具正好可以解決項(xiàng)目存在一些問(wèn)題。

jenkins與CI插件集成 - 小精靈 - web前端工作者
jenkins與CI插件集成 - 小精靈 - web前端工作者

三、實(shí)施方案

jenkins上CI插件安裝
■ 手動(dòng)安裝
第一步,查詢(xún)需要插件名稱(chēng)
https://wiki.jenkins-ci.org/display/JENKINS/Plugins
第二步,查詢(xún)插件是否依賴(lài)其他插件
第三步,進(jìn)入插件下載頁(yè)面http://updates.jenkins-ci.org/download/plugins/?C=N;O=D,下載插件
第四步,將插件放到
${jenkins安裝目錄}/jenkins_home/plugins,手動(dòng)重啟服務(wù)。
即進(jìn)去${jenkins安裝目錄}/tomcat7/bin,使用shutdown.sh與startup.sh關(guān)閉或者啟動(dòng)jenkins服務(wù)。
■ jenkins管理平臺(tái)安裝
第一步,進(jìn)入jenkins管理平臺(tái),點(diǎn)擊登錄。(第一個(gè)注冊(cè)的即為管理員)
第二步,點(diǎn)擊左邊菜單系統(tǒng)管理,在彈出頁(yè)面中選擇管理插件
第三步,點(diǎn)擊可選插件,找到需要安裝插件
勾選安裝后重啟或者先下載重啟后再安裝,也可以進(jìn)入命令行手動(dòng)重啟jenkins。

jenkins上CI插件集成

Deploy插件主要作用:打包發(fā)布
第一步:下載插件并安裝插件
下載weblogic-deployer-plugin.hpi(因?yàn)槲覀冇玫氖莣eblogic服務(wù)器,其他tomcat,apache,jboss下載deploy.hpi插件)與依賴(lài)插件放到${jenkins安裝目錄}/jenkins_home/plugins目錄,重啟服務(wù)
第二步:項(xiàng)目JOB中配置構(gòu)建信息

jenkins與CI插件集成 - 小精靈 - web前端工作者
jenkins與CI插件集成 - 小精靈 - web前端工作者

junit插件主要作用:?jiǎn)卧獪y(cè)試,測(cè)試代碼功能
第一步:下載插件并安裝插件
下載javatest-report.hpi與依賴(lài)插件放到${jenkins安裝目錄}/jenkins_home/plugins目錄,重啟服務(wù)
第二步:項(xiàng)目JOB中配置構(gòu)建信息

jenkins與CI插件集成 - 小精靈 - web前端工作者
jenkins與CI插件集成 - 小精靈 - web前端工作者

第三步:項(xiàng)目構(gòu)建完成后,可以在剛才構(gòu)建的buildID下面看到本次構(gòu)建生成的junit報(bào)告信息


jenkins與CI插件集成 - 小精靈 - web前端工作者
jenkins與CI插件集成 - 小精靈 - web前端工作者

findbugs插件主要作用:靜態(tài)代碼檢查,發(fā)現(xiàn)常見(jiàn)代碼問(wèn)題
第一步:下載插件并安裝插件
下載findbugs.phi與依賴(lài)插件放到${jenkins安裝目錄}/jenkins_home/plugins目錄,重啟服務(wù)
第二步:項(xiàng)目JOB中配置構(gòu)建信息

jenkins與CI插件集成 - 小精靈 - web前端工作者
jenkins與CI插件集成 - 小精靈 - web前端工作者

第三步:項(xiàng)目構(gòu)建完成后,可以在剛才構(gòu)建的buildID下面看到本次構(gòu)建生成的findbugs報(bào)告信息


jenkins與CI插件集成 - 小精靈 - web前端工作者
jenkins與CI插件集成 - 小精靈 - web前端工作者

pmd插件主要作用:靜態(tài)代碼檢查,發(fā)現(xiàn)常見(jiàn)代碼問(wèn)題,與findbugs類(lèi)似
第一步:下載插件并安裝插件
下載pmd.phi與依賴(lài)插件放到${jenkins安裝目錄}/jenkins_home/plugins目錄,重啟服務(wù)
第二步:項(xiàng)目JOB中配置構(gòu)建信息

jenkins與CI插件集成 - 小精靈 - web前端工作者
jenkins與CI插件集成 - 小精靈 - web前端工作者

第三步:項(xiàng)目構(gòu)建完成后,可以在剛才構(gòu)建的buildID下面看到本次構(gòu)建生成的pmd報(bào)告信息


jenkins與CI插件集成 - 小精靈 - web前端工作者
jenkins與CI插件集成 - 小精靈 - web前端工作者

checkstyle插件主要作用:檢查代碼風(fēng)格樣式
第一步:下載插件并安裝插件
下載checkstyle.phi與依賴(lài)插件放到${jenkins安裝目錄}/jenkins_home/plugins目錄,重啟服務(wù)
第二步:項(xiàng)目JOB中配置構(gòu)建信息

jenkins與CI插件集成 - 小精靈 - web前端工作者
jenkins與CI插件集成 - 小精靈 - web前端工作者

第三步:項(xiàng)目構(gòu)建完成后,可以在剛才構(gòu)建的buildID下面看到本次構(gòu)建生成的checkstyle報(bào)告信息


jenkins與CI插件集成 - 小精靈 - web前端工作者
jenkins與CI插件集成 - 小精靈 - web前端工作者

clover插件主要作用:檢查代碼單元測(cè)試的覆蓋率,主要指標(biāo):行覆蓋率,分支覆蓋率,方法覆蓋率
第一步:下載插件并安裝插件
下載checkstyle.phi與依賴(lài)插件放到${jenkins安裝目錄}/jenkins_home/plugins目錄,重啟服務(wù)(clover有收費(fèi)和試用)
第二步:項(xiàng)目工程配置JOB中配置構(gòu)建信息
<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前端工作者

第三步:項(xiàng)目構(gòu)建完成后,可以在剛才構(gòu)建的buildID下面看到本次構(gòu)建生成的clover報(bào)告信息
jenkins與CI插件集成 - 小精靈 - web前端工作者
jenkins與CI插件集成 - 小精靈 - web前端工作者

jenkins與CI插件集成 - 小精靈 - web前端工作者
jenkins與CI插件集成 - 小精靈 - web前端工作者

duplicate code插件主要作用:檢查代碼中重復(fù)代碼塊的情況
第一步:下載插件并安裝插件
下載dry.phi與依賴(lài)插件放到${jenkins安裝目錄}/jenkins_home/plugins目錄,重啟服務(wù)
第二步:項(xiàng)目工程配置JOB中配置構(gòu)建信息

jenkins與CI插件集成 - 小精靈 - web前端工作者
jenkins與CI插件集成 - 小精靈 - web前端工作者

第三步:項(xiàng)目構(gòu)建完成后,可以在剛才構(gòu)建的buildID下面看到本次構(gòu)建生成的重復(fù)代碼報(bào)告信息


jenkins與CI插件集成 - 小精靈 - web前端工作者
jenkins與CI插件集成 - 小精靈 - web前端工作者

第一步:下載插件并安裝插件
下載createjobadvanced.phi與依賴(lài)插件放到${jenkins安裝目錄}/jenkins_home/plugins目錄,重啟服務(wù)
第二步:項(xiàng)目JOB中配置構(gòu)建信息

jenkins與CI插件集成 - 小精靈 - web前端工作者
jenkins與CI插件集成 - 小精靈 - web前端工作者

第三步:配置定時(shí)后,系統(tǒng)會(huì)在指定時(shí)間自動(dòng)構(gòu)建

Crontab格式:f1 f2 f3 f4 f5 program
其中 f1 是表示分鐘,f2 表示小時(shí),f3 表示一個(gè)月份中的第幾日,f4 表示月份,f5 表示一個(gè)星期中的第幾天。program 表示要執(zhí)行的程式。

第一步:下載插件并安裝插件
下載email-ext對(duì)應(yīng)的*.hpi與依賴(lài)插件放到${jenkins安裝目錄}/jenkins_home/plugins目錄,重啟服務(wù)
第二步:項(xiàng)目JOB中配置構(gòu)建信息
在”P(pán)ost-build Actions”選項(xiàng)中,不選擇”Email Notification”標(biāo)簽,而勾選”Editable Email Notification”標(biāo)簽。并在Global Recipient List中填入接收郵件的地址,其它默認(rèn)即可。

四、結(jié)論

通過(guò)jenkins與CI集成
■ 能夠每天監(jiān)控項(xiàng)目代碼,控制項(xiàng)目風(fēng)險(xiǎn)
■ 提高代碼質(zhì)量,減少后期開(kāi)發(fā),維護(hù)或測(cè)試成本,
■ 能夠完成基礎(chǔ)測(cè)試場(chǎng)景自動(dòng)化測(cè)試,減少測(cè)試成本

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容