2015-10-19 5 views
1

У меня есть проект JAVA ANT, и я пытаюсь интегрировать с ним сценарии PMD, чтобы я мог проверить все ошибки и предупреждения в моем проекте.
Ниже фрагмент ANT сценария, который я добавил в моем build.xml:Не удалось построить ошибки PMD/предупреждения

<property name="pmd.dir" value="buildconfig/build/pmd/" /> 
<path id="pmd.lib" > 
    <fileset dir="${pmd.dir}"> 
    <include name="*.jar"/> 
    <exclude name="/rulesets" /> 
    </fileset> 
</path> 
<target name="pmd" depends="init"> 
    <echo message="PMD Starting-----" /> 
    <taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="pmd.lib"/> 
    <pmd shortFilenames="true"> 
     <ruleset>unusedcode</ruleset> 
     <formatter type="text" toFile="${pmd.dir}/pmd-ant-results.txt"/> 
     <fileset dir="modules/app/"> 
     <include name="**/*.java"/> 
     </fileset>  
    </pmd> 
</target> 

ANT сборки работает нормально с PMD давая соответствующие отчеты об ошибках, но мне нужно прервать сборку как провал, когда PMD сталкивается любой ошибки в коде.
Я попытался добавить failOnRuleViolation="yes", но это не остановило сборку.
Есть ли что-нибудь еще, что мне нужно добавить в скрипт?

ответ

1

Попробуйте failOnRuleViolation="true" вместо failOnRuleViolation="yes" ...

<pmd shortFilenames="true" failOnRuleViolation="true"> 
    ... 

Некоторые задачи Ant лечения true и yes как эквивалент, но многие задачи не знают, как обращаться yes вообще. Возможно, что <pmd> является одной из тех задач, которые не обрабатывают yes.

Как правило, избежать этого Гоча в будущем всегда использовать true и false вместо yes и no.