【问题标题】:How to run PMD for java 1.6 in Maven如何在 Maven 中为 java 1.6 运行 PMD
【发布时间】:2017-10-25 12:45:21
【问题描述】:

我正在尝试将 PMD 配置为需要在 java 1.6 中运行的遗留应用程序(这是强制性的)。我正在尝试找到至少再次构建 java 1.6 的 pmd-plugin 版本。如果我使用 maven-pmd-plugin,它会抱怨与 jre 1.6 的二进制不兼容。

问题是旧版本的 PMD net.sourceforge.pmd 似乎被忽略了,无论我使用什么版本,maven-pmd-plugin:3.8 总是运行。 现在我正在尝试,但没有运气。

<dependency>
    <groupId>net.sourceforge.pmd</groupId>
    <artifactId>pmd</artifactId>
    <version>5.0.0</version>
</dependency>

【问题讨论】:

    标签: java maven pmd java-6


    【解决方案1】:

    针对 Java 6 编译的最新 PMD 版本是 PMD 5.4.6。 (5.4.x 分支的最后一个)。从 5.5.0 开始,PMD 就需要 Java 7。

    您可以通过显式设置依赖项来告诉 Maven 插件使用您需要的任何版本的 PMD。

    您可以查看有关如何操作的文档here

    【讨论】:

    • >您可以通过显式设置它的依赖项来告诉 Maven 插件使用您需要的任何版本的 PMD。好的,但是“maven-pmd-plugin”本身使用 java 1.7 来运行。我想我根本不能在运行 maven 的 java 1.6 中使用这个插件。
    • @MarceloRibeiro 您可以使用插件版本 3.6,这是最后使用 Java 6 的版本。
    • 使用版本 3.6、3.5 和 3.4 我仍然得到 java.lang.UnsupportedClassVersionError: net/sourceforge/pmd/renderers/Renderer : Unsupported major.minor version 51.0 你知道如果我必须添加任何其他报告的配置除了... org.apache.maven.pluginsmaven-pmd-plugin3.4 ....
    • 您可能在其他地方遇到了配置问题。 maven-pmd-plugin 3.6 / 3.5 / 3.4 默认使用 PMD 版本 5.4.x / 5.3.x。您可能有重复的插件定义,请检查您是从父 pom 继承还是从覆盖配置的子项目继承
    猜你喜欢
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多