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