我有一个PMD-IntelliJ插件的fails to be recognized规则文件。
该插件的作者建议我可能使用过时的自定义规则集(文件)格式版本。
这很可能,规则集文件已经很久了,到目前为止只用于Eclipse及其PMD插件。
我目前有点时间,所以我希望有人可以
到目前为止,我对PMD一无所知,只是想让它在IntelliJ中运行。中期,我打算学习它,但是现在,我基本上希望快速修复......:)
P.S。:这是来自PMD论坛的cross-post ......
<?xml version="1.0" encoding="UTF-8"?>
<ruleset name="exampleruleset">
<description>foo bar</description>
<rule name="DoubleCheckedLocking"
message="Double checked locking is not thread safe."
class="net.sourceforge.pmd.rules.DoubleCheckedLocking"
externalInfoUrl="http://example.com/wiki/PMDRuleDoubleCheckedLocking">
<priority>1</priority>
</rule>
</ruleset>
答案 0 :(得分:1)
您似乎正在使用PMD 4.x中的规则。通过切换到PMD 5,有很多不兼容的changes重组包。
看起来,你只想执行一条规则,即DoubleCheckedLocking。我同意this suggestion仅引用该规则,例如:
<?xml version="1.0"?>
<ruleset name="Custom ruleset"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
<description>This ruleset checks my code for bad stuff</description>
<rule ref="rulesets/java/basic.xml/DoubleCheckedLocking"/>
</ruleset>
此规则的默认优先级已经是&#34; 1&#34;,因此无需覆盖优先级。 另请参阅How to make a new rule set和available rules。