Муравьиный PMD и исключение из правил
У меня есть задача 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 ответ
Решение
Проверьте favorites.xml
для включения NullAssignment
Редактировать: На самом деле, если это стандартный файл, включенный в PMD, в него включено NullAssignment.