5

pmd-5.0.1 を使用。いくつかのカスタム ルールセットがあります。

<target name="pmd">
    <condition property="rules.file" else="${data}\pmdrules.xml,${data}\madcustompmdrules.xml">
        <isset property="rules.file"/>
    </condition>        

    <pmd rulesetfiles="${rules.file}">
        <formatter type="xml" toFile="${report.file}"/>
        <fileset dir="${src}">
            <include name="**/*.java"/>
        </fileset>
    </pmd>
</target>

ルールセットは、次のような基本ルールを参照します。

<rule ref="rulesets/basic.xml/EmptySwitchStatements"/>
<rule ref="rulesets/basic.xml/JumbledIncrementer"/>
<rule ref="rulesets/basic.xml/ForLoopShouldBeWhileLoop"/>
<rule ref="rulesets/basic.xml/UnnecessaryConversionTemporary"/>
<rule ref="rulesets/basic.xml/OverrideBothEqualsAndHashcode"/>
<rule ref="rulesets/basic.xml/DoubleCheckedLocking"/>

ただし、この ant ターゲットを実行すると、次のようになります。

java.lang.RuntimeException: Couldn't find the class Can't find resource rulesets/basic.xml.  Make sure the resource is a valid file or URL or is on the CLASSPATH.

basic.xml は jar ファイルの一部であるべきではありませんか? 私は何が欠けていますか?

4

1 に答える 1

13

古いバージョンの PMD に基づいてルールを作成していたようです。それらのほとんどは にありますrulesets/java/basic.xml/...

于 2012-11-30T22:24:48.730 に答える