pmd规则集是在rulesets的对应xml里.java
以前研究pmd的时候,发现若是配置规则时使用<rule ref="rulesets/java/...xml">形式的话,该规则就怎么样都会被使用.命令行
即使命令行参数传入的要求只调用该规则集xml里的某一个规则.xml
如今反过来,若是想使用某个规则集的时候,某一个规则做为辅助规则一定要被使用,并且不想用户知道该规则搭配的细节,就能够使用ref去引用一个规则!接口
这样就没必要对用户的规则输入去另外分析了.it
也没必要实现本身的一个visitor,甚至根据自定义参数去判断是否启动某个扫描(参考SourceCodeProcessor类里的useDFA等方法...它们都是实现了visitor接口,配置
但实际上写一个规则,也一样是在实现一个visitor..)sso
总的来讲,场景适合于:引用
A规则依赖于B规则,可是又不想要用户输入A规则的时候,同时再输入B规则的指令,就能够使用该方法.方法