Муравьиные PMD и исключение из правил - PullRequest
1 голос
/ 24 ноября 2011

У меня есть задача Ant для создания отчета PMD:

<pmd rulesetfiles="${commons-home}/src/main/resources/pmd/wai_ruleset.xml">
    <formatter type="xml" toFile="${target.reports.pmd}/pmd-report.xml" linkPrefix="${src.main}/"/>
    <fileset dir="${src.main}">
        <include name="**/*.java"/>
    </fileset>  
</pmd>

В wai_ruleset.xml Я (пытаюсь) исключить NullAssignment из правил:

<?xml version="1.0"?>
    <ruleset name="WAI rule set"
        xmlns="http://pmd.sf.net/ruleset/1.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
        xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">

    <description>
        WAI rules
    </description>

    <!-- imports -->
    <rule ref="rulesets/basic.xml">
        <exclude name="CollapsibleIfStatements"/>
    </rule>
    <rule ref="rulesets/favorites.xml">
        <!-- we redefine it below with a different threshold -->
        <exclude name="CyclomaticComplexity" />
        <!-- empty default constructors are needed by Envers -->
        <exclude name="UnnecessaryConstructor"/>
    </rule>

    <!-- CyclomaticComplexity with a threshold of 12 -->
    <rule ref="rulesets/codesize.xml/CyclomaticComplexity">
        <priority>1</priority>
        <properties>
            <property name="reportLevel" value="12" />
        </properties>
    </rule>

    <rule ref="rulesets/controversial.xml">
        <exclude name="UnnecessaryConstructor"/>
        <exclude name="OnlyOneReturn"/>
        <exclude name="AssignmentInOperand"/>
        <exclude name="BooleanInversion"/>
        <exclude name="NullAssignment"/>
        <exclude name="DataflowAnomalyAnalysis"/>
   </rule>

</ruleset>

Если я не исключу NullAssignment, я получу два предупреждения для каждого присвоения нулю. Если я исключаю NullAssignment, я все равно получаю предупреждение для каждого назначения на ноль.

Какое правило генерирует дополнительное предупреждение? Это ошибка?

1 Ответ

3 голосов
/ 24 ноября 2011

Проверьте favorites.xml для включения NullAssignment

Редактировать: На самом деле, если это стандартный файл, включенный в PMD, имеет включенное NullAssignment .

...