1

当我运行时,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。

单击此处下载完整项目 (8kb)

4

1 回答 1

5

编辑(2014 年 3 月 26 日)

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


原始答案

痛,答案是站点生成从maven 2到maven 3完全变了。这个博客上有解释。请注意,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>
于 2011-04-06T20:34:34.440 回答