一、jenkins集成PMD流程

实际生产中,上线的代码往往要经过检测,满足一些规则才行,这些规则可以是直接使用官方的规则,也可以是自己写的。

因为目前的工作和java有关,所以这里以java代码静态检测 PMD为例子来进行讲解。这里PMD是通过maven命令来启动的。

jenkins集成pmd流程大致如下:

  1. 用户上传代码到代码库,代码库有代码变更
  2. jenkins抓取到这次变更,开始下载代码库
  3. jenkins开始解析maven pom文件,并下载相应的依赖
  4. jenkins开始pmd检测,检测通过就构建成功,检测失败就发送失败邮件

本篇文章是以gitlab当做代码的存放地址,具体配置可以查看上一篇文章。关于实时抓取代码变更,jenkins中有gitlab的merge request操作以及“Build when a change is pushed to GitLab”选项,但是因为我是用的本地jenkins,而gitlab中web-hook不允许使用localhost,所以第三个选项和第六个选项都勾选不了,这两个选项具体的区别之后用到的时候再讲,这里我采取的其他办法(scm poll、手动构建),如下图所示:


二、jenkins配置

2.1 邮件配置

试想这样一种情景:代码修改很频繁的情况下,项目负责人需要一直跟进jenkins的工作状态,对其来说,也是一件很痛苦的事情。所以在实际项目中,我们需要使用邮件的功能,当构建失败的时候发送邮件给项目负责人。

  1. 安装“Email Extension Plugin”插件

这个插件的作用是自己制作邮件的模板,取代jenkins的原生邮件,本篇文章使用的是jenkins原生的邮件,点击 系统管理-->管理插件-->可选插件-->下载Email Extension Plugin即可

2. 邮件配置

点击系统管理--->系统设置

3.job中关于邮件的配置

2.2 job配置

因为pmd是用maven来启动的,所以在配置的时候需要先配置好maven环境,具体配置见

汪康:jenkins学习系列之jenkins基本配置​zhuanlan.zhihu.com

  1. 新建一个maven项目

2.job配置如下

  • 源码管理部分选择git
  • build配置如下所示(一般Goals and options填写pmd:pmd,不需要再另外配置pom):

  • 构建设置如下图所示:

3.pom文件部分配置如下所示:

    <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>2.3.2</version><configuration><source>1.6</source><target>1.6</target></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-pmd-plugin</artifactId><version>3.0.1</version><executions><execution><goals><goal>check</goal></goals></execution></executions></plugin></plugins></build>
  • 1.6指的是jdk的版本
  • 如果对于maven的pom文件不太熟悉,请自行百度(因为我也不熟悉^_^)
  • 如果在jenkins上出现pom.xml找不到,可能是你配置的地址不对,请自行核查pom文件是否在你的根目录下
  • 如果在构建的时候因为有错误导致jenkins一直在执行中,点击叉叉依然停止不了,请自行使用命令行jenkins restart来重启jenkins,然后刷新页面

2.3项目运行以及查看

配置完了以后点击立即构建:

左下角红色代表构建失败,说明有错误需要解决,蓝色代表构建成功。点最近的一次构建:

失败以后会收到相应的邮件,这里我以163邮箱截图为例子:

邮件里面是jenkins的log日志,可以自己去配置邮件模板来解决显示内容的问题。


以上就是jenkins集成PMD的全部过程了。PMD主要是java代码的扫描,还有的是findbugs、checkstyle以及jacoco覆盖率等都可以使用jenkins集成起来,如果你是用的php、C++、C等编程语言,那推荐可以使用sonarqube来做代码检测,sonarqube的代码检查的广度和深度都更高,这个以后用到了再说如何配置。

如果对文章有疑问或者哪里不懂的请联系我,在力所能及的范围内帮助解答;如果文章有错误,也欢迎指出;也希望jenkins的大牛来一起互相交流学习。

微信号:crazy_boy-smile

知乎链接:https://zhuanlan.zhihu.com/p/37378204

jenkins学习系列之PMD静态代码检测相关推荐

  1. Jenkins Maven checkstyle findbugs pmd静态代码检查

    公司原来Java和安卓项目都是用Gradle做配置管理,现在其他项目组使用Maven作为配置管理,对Maven研究了之后也可以用Jenkins做集成了,不过经过比较还是觉得Gradle的语法更加简洁. ...

  2. 【代码质量】静态代码检测pc-lint, visual lint, cpp-check(pclint、cppcheck)

    [代码质量]静态代码检测pc-lint, visual lint, cpp-check(pclint.cppcheck)_bandaoyu的博客-CSDN博客 静态代码扫描工具汇总_ym & ...

  3. QT调试技巧-使用静态代码检测工具Cppcheck检测代码

    #QT调试技巧-使用静态代码检测工具Cppcheck检测代码 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 环境: Qt Creat ...

  4. golang 静态代码检测工具golangci-lint使用

    golang有没有类似于c++中的cppcheck静态代码检测工具呢?答案是有的,今天向大家推荐一个工具golangci-lint, 主要是安装和使用的时候遇到不少了坑,分享出来供大家避坑: 以下是w ...

  5. AndroidStudio静态代码检测工具Analyze Code

    工作中git正常流程中提交代码之后是需要同事或者leader进行代码review的,代码review不但包括逻辑是否正常还包括代码是否规范,写法是否会影响性能,是否添加了无用或者删除了有用代码,简直比 ...

  6. android代码检测工具,大家好 给大家介绍一下 Android静态代码检测工具FireLine

    FireLine介绍 随着时间的推移,项目的代码量越来越大,而紧张的项目开发周期使得开发人员进行单元测试的时间少之又少.我仔细看了下最近几轮测试中测试人员提的缺陷单,大部分的bug其实归根到底都是由空 ...

  7. jenkins+findbugs+checkstyle+PMD静态代码检查(二)

    可以根据自己的需求选中对应的插件进行配置(不一定非要同时配置三个插件) jenkins:持续集成的工具 fundbugs:检测代码静态错误的插件  例如:定义了没有用到的对象,string类型的比较使 ...

  8. java静态代码检测 pmd,PMD使用与代码质量

    最近项目组要求使用PMD工具,通过自定义规则来检查代码,接录部分文档内容如下: PMD介绍 PMD是一种开源分析Java代码错误的工具.与其他分析工具不同的是,PMD通过静态分析获知代码错误.也就是说 ...

  9. coverity代码检测工具介绍_兴业证券:静态代码检测最佳实践

    一. 引言 谷歌发布的代码规范中指出,80% 的缺失是由 20% 的代码所引起的.规范的代码可以消除过于强烈的个人风格,有助于代码在项目间高效的流转:提升代码的正确性,降低低级问题产生的可能性:同时也 ...

最新文章

  1. wamp多站点访问设置
  2. 把激光雷达放在iPad上是怎样的体验?看到“测距仪”App的效果我震惊了
  3. 基础练习 查找整数 c语言
  4. 额的神啊~~可爱的Visual Studio把项目模板扔了
  5. 如何下载64位版本的eclipse 以及配置
  6. 造个轮子 | 自己动手写一个Redis
  7. OpenCV图像处理基础操作(3)
  8. C++ OS 网络 数据库 (面试)
  9. Android 4.2蓝牙介绍
  10. Linux网络服务--DHCP原理与配置 理论+实验(DHCP的分配方式,工作原理详解,配置文件修改和客户端的使用方式DHCP中继的配置命令)
  11. android触摸屏原理,智能手机触摸屏的工作原理是如何的
  12. canvas-缤纷小球
  13. python合并多个pdf_python使用PyPDF2把多个pdf文件合并成一个
  14. excel 表格怎么让内容回车换行?
  15. 学蓝桥Chapter6:矩阵键盘KBD练习
  16. c primer plus 第五章编程练习
  17. DDR4 硬件设计笔记
  18. Yeslab安全实验室教徒计划第二期 2011-11-7
  19. Firefox备份图文教程
  20. 银行业务介绍--摘要

热门文章

  1. idea激活云服务器搭建
  2. Android EditText默认数字键盘,能输入字母和数字
  3. 计算机毕业设计之java+springboot基于vue的私人健身与教练预约管理系统
  4. 朝题夕解——动态规划之整数划分模型
  5. [ZedBoard移植嵌入式Linux教程(9,10)]编译设备树dts为dtb,制作根文件系统
  6. 如何快速用node在本地搭建一个服务器
  7. 用于开发语音 AI 应用程序的 GPU 加速 SDK
  8. PVE开启硬件显卡直通功能
  9. 端到端OCR算法:Real-time Arbitrarily-Shaped Text Spottingwith Point Gathering Network(PGNet)
  10. 关于应用logo在小米手机上不显示新logo解决方式