当代码具有注释和泛型时,maven 3 + pmd失败

时间:2011-04-06 19:53:21

标签: java maven-3 pmd

当我运行mvn pmd:pmd时,我收到PMD的警告/错误,说代码不能使用java 1.4或1.5的泛型,注释或枚举。当未设置targetJdk属性时(我设置了),这应该是一个错误。

这是我得到的错误的一个例子

  

[警告]解析/Users/augusto/Downloads/PMD-Clover2-Cobertura-Maven2-Test/PMDTest/src/main/java/org/xh/studies/quality/App.java时出错:无法使用泛型,除非在JDK 1.5模式下运行!

这里是我正在使用的pom片段(下面是整个应用程序的链接)

<build>
   <plugins>
       <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
           <version>2.3.2</version>
           <configuration>
               <source>1.6</source>
               <target>1.6</target>
           </configuration>
       </plugin>
   </plugins>
</build>

<reporting>
   <plugins>
       <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-pmd-plugin</artifactId>
           <version>2.5</version>
           <configuration>
               <targetJdk>1.6</targetJdk>
           </configuration>
       </plugin>
   </plugins>
</reporting>

我在mac上使用Maven 3.0.2,使用最新的java补丁1.6.0_24。

点击here下载整个项目(8kb)

1 个答案:

答案 0 :(得分:5)

编辑(2014年3月26日)

从maven网站插件的3.3版开始,maven也可以使用旧式配置(实际上现在建议使用 maven 2 样式)。链接:docsjira


原始答案

痛苦,答案是网站生成完全从maven 2变为maven 3.有blog的解释。请注意,mvn pmd:pmd无论如何都不适用于新的报告配置,但它可以作为网站生成的一部分。

这是一个有效的pom的例子。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>${java-version}</source>
                <target>${java-version}</target>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>3.0-beta-2</version>
            <configuration>
                <reportPlugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-project-info-reports-plugin</artifactId>
                        <version>2.3.1</version>
                        <configuration>
                            <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
                            <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
                        </configuration>
                    </plugin>

                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>javancss-maven-plugin</artifactId>
                        <version>2.0</version>
                    </plugin>

                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>jdepend-maven-plugin</artifactId>
                        <version>2.0-beta-2</version>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-pmd-plugin</artifactId>
                        <version>2.5</version>
                        <configuration>
                            <linkXRef>false</linkXRef>
                            <sourceEncoding>utf-8</sourceEncoding>
                            <minimumTokens>100</minimumTokens>
                            <targetJdk>${java-version}</targetJdk>
                            <verbose>true</verbose>
                        </configuration>
                    </plugin>

                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>findbugs-maven-plugin</artifactId>
                        <version>2.3.2</version>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-checkstyle-plugin</artifactId>
                        <version>2.6</version>
                    </plugin>

                </reportPlugins>
            </configuration>
        </plugin>
    </plugins>
</build>