Phinehasz Zhi

超越你看到的

pmd 设置默认规则,只要使用了该规则集就自动使用

pmd规则集是在rulesets的对应xml里.

之前研究pmd的时候,发现如果配置规则时使用<rule ref="rulesets/java/...xml">形式的话,该规则就怎么样都会被使用.

即便命令行参数传入的要求只调用该规则集xml里的某一个规则.

现在反过来,如果想使用某个规则集的时候,某一个规则作为辅助规则必定要被使用,而且不想用户知道该规则搭配的细节,就可以使用ref去引用一个规则!

这样就不必对用户的规则输入去另外分析了.

也不必实现自己的一个visitor,甚至根据自定义参数去判断是否启动某个扫描(参考SourceCodeProcessor类里的useDFA等方法...它们都是实现了visitor接口,

但实际上写一个规则,也同样是在实现一个visitor..)

总的来说,场景适合于:

A规则依赖于B规则,但是又不想要用户输入A规则的时候,同时再输入B规则的指令,就可以使用该方法.

posted @ 2018-10-08 21:24  phinehasz  阅读(1058)  评论(0编辑  收藏  举报