PMD使用java project项目进行控制台调用输出

pmd使用java project进行调用 :

    简介:PMD是源代码分析器。它找到常见的编程缺陷,如未使用的变量,空的catch块,不必要的对象创建等等。它支持Java,JavaScript,Salesforce.com Apex和Visualforce,PLSQL,Apache Velocity,XML,XSL

准备工作:

    下载:pmd-bin-6.13.0(jar)  官网地址: https://pmd.github.io/  向下翻找

    下载:pmd-src-6.13.0(源码,可有可无)

    从左到右依次三个选项:下载pmd-bin-6.13.0(jar)  pmd-src-6.13.0(源码)    pmd-doc-6.13.0(文档)

我本人只做了检测java代码的这块,所以以下就由java代码进行演示,但是细想是一样的,其他语言的可以进行举一反三

建立一个java project工程(PMDDemo)

    然后将pmd-bin-6.13.0\lib的asm-7.1.jar,commons-io-2.6.jar,commons-lang3-3.8.1.jar,jcommander-1.72.jar,pmd-core-6.13.0.jar,pmd-java-6.13.0.jar

    这六个包引入到项目中(其中pmd-java-6.13.0.jar这是pmd中的检测java的依赖包,其他语言请选择对应包),必须引入;

    通过 右键项目(PMDDemo)> Build Path > Configure Build Path > Libraries > Add Libraries > User Libraries > User Libraries  > new >输入你自定义jar存放的文件夹名称

如图 :

如此完成建立好了自定义的pmdjar文件夹,用来存放jar包

接下来:

3:选择刚刚下载的pmd-bin-6.13.0 进入到lib目录,选择pmd-bin-6.13.0\lib的asm-7.1.jar,commons-io-2.6.jar,commons-lang3-3.8.1.jar,jcommander-1.72.jar,pmd-core-6.13.0.jar,pmd-java-6.13.0.jar (Ctrl+鼠标左键点击可以多选),进行添加然后点击 ok > Finish > ok

图:

结果:

接下来就是代码时刻了:(这里的例子使用了官方的例子;地址:https://pmd.github.io/pmd-6.13.0/pmd_userdocs_extending_writing_pmd_rules.html)

首先:要知道我们要检测什么样的代码(PmdTest)

       我们可以使用“While循环必须使用大括号作为示例。在下面的源代码中,很容易在视觉上丢失 - 很难分辨花括号的属性。所以要检查静态扫描出这段代码没有{ }

建立一个class (作用检测代码,也可以说是规则)(PmdDemoWhileLoops)

    这里面主要使用了AST(抽象语法树),来进行树节点判断是否有{}

(详细说明介绍请看官网:https://pmd.github.io/pmd-6.13.0/pmd_userdocs_extending_writing_pmd_rules.html)

    建立一个xml文件(用来调用检测代码);(PmdDemoWhileLoops.xml)

    这个xml文件我文件主要用于调用你刚写好的规则类

name这个名字自定义,message触犯规则时的异常输出语句一定不要使用特殊字符否则会报错 比如“{ }”等;class:绑定刚才新建的java规则文件的地址,记得要是用此项目下的全路径;标签< description >里面添加描述;我暂时只是把它当做一个注释来看待;如果你们有更好的理解,请联系博主;

    里面还有很多属性配置,这里就不一一介绍了(详细树配置请看官方文档地址:https://pmd.github.io/pmd-6.13.0/pmd_userdocs_extending_defining_properties.html)

到处自定义规则算是写好了;

接下来运行试试:(测试运行类RunPmdRule)

接下来你可以自己把测试源码(PmdTest.java)里面的while循环加上{}看一下什么效果;

本人第一次发表博客,如有侵权,请联系本人进行删除! 有错误点:请联系本人进行修改;请大家多多包涵;

   

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值