PMDエラー - JDK 1.4モードで実行しているときにループ構文にJDK 1.5を使用できません!

PMDエラー-JDK 1.4モードで実行している場合、ループ構文にJDK 1.5を使用できません!

WebプロジェクトでPMD静的コード分析プロセスを実行するためにHudsonとPMDを統合する場合。 次のエラーメッセージが表示されます。 ところで、私はMaven 2を使用してWebプロジェクトを管理しています。

Caused by: net.sourceforge.pmd.ast.ParseException:
Can't use JDK 1.5 for loop syntax when running in JDK 1.4 mode!
    at net.sourceforge.pmd.ast.JavaParser.checkForBadJDK15ForLoopSyntaxArgumentsUsage
(JavaParser.java:36)
    at net.sourceforge.pmd.ast.JavaParser.ForStatement(JavaParser.java:4517)
    at net.sourceforge.pmd.ast.JavaParser.Statement(JavaParser.java:3969)
    at net.sourceforge.pmd.ast.JavaParser.BlockStatement(JavaParser.java:4100)
    at net.sourceforge.pmd.ast.JavaParser.Block(JavaParser.java:4061)
    at net.sourceforge.pmd.ast.JavaParser.MethodDeclaration(JavaParser.java:1333)
    at net.sourceforge.pmd.ast.JavaParser.ClassOrInterfaceBodyDeclaration(JavaParser.java:1007)
    at net.sourceforge.pmd.ast.JavaParser.ClassOrInterfaceBody(JavaParser.java:926)
    at net.sourceforge.pmd.ast.JavaParser.ClassOrInterfaceDeclaration(JavaParser.java:463)
    at net.sourceforge.pmd.ast.JavaParser.TypeDeclaration(JavaParser.java:355)
    at net.sourceforge.pmd.ast.JavaParser.CompilationUnit(JavaParser.java:126)
    at net.sourceforge.pmd.parsers.Java14Parser.parse(Java14Parser.java:17)
    at net.sourceforge.pmd.PMD.processFile(PMD.java:89)
    at net.sourceforge.pmd.PMD.processFile(PMD.java:66)
    at net.sourceforge.pmd.PMD.processFile(PMD.java:152)

エラーメッセージ「Can’t use JDK 1.5 for loop syntax when running in JDK 1.4 mode」は、JDK互換性のない問題のようです。 PMD default JDK is using 1.4, we need to specify the PMD JDK version manually in Maven pom.xml file.

   
     maven-pmd-plugin
     2.3
     
          1.5
     

完了、PMDはエラーなしで実行されます。

P.S Do not put targetJdk = 1.6, cause PMD only support 1.4 and 1.5 at the moment, put JDK1.6 will make PMD ignore the setting and use JDK1.4 instead.