2015-10-19 278 views
1

我有一個JAVA ANT項目,我正在嘗試將PMD腳本與它集成,以便我可以檢查項目中的所有錯誤和警告。
下面是我在我的build.xml添加Ant腳本片段:構建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任務處理trueyes等同,但很多任務不知道如何處理yes可言。有可能<pmd>是那些不處理yes的任務之一。

作爲一個經驗法則,避免通過始終使用truefalse代替yesno這個疑難雜症的未來。