jenkins学习系列之PMD静态代码检测

一、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学习系列之PMD静态代码检测_第1张图片

二、jenkins配置

2.1 邮件配置

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

  1. 安装“Email Extension Plugin”插件

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

2. 邮件配置

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

jenkins学习系列之PMD静态代码检测_第2张图片

3.job中关于邮件的配置

jenkins学习系列之PMD静态代码检测_第3张图片


2.2 job配置

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

汪康:jenkins学习系列之jenkins基本配置zhuanlan.zhihu.comjenkins学习系列之PMD静态代码检测_第4张图片
  1. 新建一个maven项目
jenkins学习系列之PMD静态代码检测_第5张图片

2.job配置如下

  • 源码管理部分选择git
  • build配置如下所示(一般Goals and options填写pmd:pmd,不需要再另外配置pom):
  • 构建设置如下图所示:
jenkins学习系列之PMD静态代码检测_第6张图片

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

    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                2.3.2
                
                    1.6
                    1.6
                
            

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

2.3项目运行以及查看

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

jenkins学习系列之PMD静态代码检测_第7张图片

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

jenkins学习系列之PMD静态代码检测_第8张图片

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

jenkins学习系列之PMD静态代码检测_第9张图片

邮件里面是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)