我正在进行一个长期运行的多模块Maven Java项目.我试图将PMD插件从3.17.0更新到3.18.0,但我几乎立即从PMD收到了一个java.lang.NoSuchMethodError.3.17.0版本的PMD插件在这个项目上工作得很好,我在发行说明中没有找到任何帮助我理解错误的东西.希望这里的东西能理解PMD插件或错误,并能将我引向根本问题. 该项目是使用Maven3.5,JKD11构建的,编译目标为JDK8.PMD版本为6.48.0

下面是POM代码片段和错误输出.

                    <artifactId>maven-pmd-plugin</artifactId>
                    <version>${pmd.plugin.version}</version>
                    <executions>
                        <execution>
                            <phase>verify</phase>
                            <goals>
                                <goal>check</goal>
                                <goal>cpd-check</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <skip>${skip.analyze}</skip>
                        <analysisCache>true</analysisCache>
                        <analysisCacheLocation>${project.build.directory}/pmd/pmd.cache</analysisCacheLocation>
                        <failOnViolation>false</failOnViolation>
                        <rulesets>
                            <ruleset>../ruleset.xml</ruleset>
                        </rulesets>
                        <printFailingErrors>false</printFailingErrors>
                        <linkXRef>false</linkXRef>
                        <targetJdk>1.8</targetJdk>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>net.sourceforge.pmd</groupId>
                            <artifactId>pmd-core</artifactId>
                            <version>${pmd.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>net.sourceforge.pmd</groupId>
                            <artifactId>pmd-java</artifactId>
                            <version>${pmd.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>net.sourceforge.pmd</groupId>
                            <artifactId>pmd-javascript</artifactId>
                            <version>${pmd.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>net.sourceforge.pmd</groupId>
                            <artifactId>pmd-jsp</artifactId>
                            <version>${pmd.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>net.sourceforge.pmd</groupId>
                            <artifactId>pmd-apex</artifactId>
                            <version>${pmd.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>net.sourceforge.pmd</groupId>
                            <artifactId>pmd-visualforce</artifactId>
                            <version>${pmd.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>```


Command: mvn pmd:check

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-pmd-plugin:3.18.0:pmd (pmd) on project test-utils: Execution pmd of goal org.apache.maven.plugins:maven-pmd-plugin:3.18.0:pmd failed: An API incompatibility was encountered while executing org.apache.maven.plugins:maven-pmd-plugin:3.18.0:pmd: java.lang.NoSuchMethodError: org.fusesource.jansi.AnsiConsole.out()Lorg/fusesource/jansi/AnsiPrintStream;
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>org.apache.maven.plugins:maven-pmd-plugin:3.18.0
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/Users/john.camerin/.m2/repository/org/apache/maven/plugins/maven-pmd-plugin/3.18.0/maven-pmd-plugin-3.18.0.jar
[ERROR] urls[1] = file:/Users/john.camerin/.m2/repository/org/apache/maven/shared/maven-artifact-transfer/0.13.1/maven-artifact-transfer-0.13.1.jar
[ERROR] urls[2] = file:/Users/john.camerin/.m2/repository/org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar
[ERROR] urls[3] = file:/Users/john.camerin/.m2/repository/org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar
[ERROR] urls[4] = file:/Users/john.camerin/.m2/repository/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
[ERROR] urls[5] = file:/Users/john.camerin/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
[ERROR] urls[6] = file:/Users/john.camerin/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
[ERROR] urls[7] = file:/Users/john.camerin/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
[ERROR] urls[8] = file:/Users/john.camerin/.m2/repository/org/codehaus/plexus/plexus-component-annotations/2.1.1/plexus-component-annotations-2.1.1.jar
[ERROR] urls[9] = file:/Users/john.camerin/.m2/repository/org/apache/maven/shared/maven-common-artifact-filters/3.3.1/maven-common-artifact-filters-3.3.1.jar
[ERROR] urls[10] = file:/Users/john.camerin/.m2/repository/commons-io/commons-io/2.11.0/commons-io-2.11.0.jar
[ERROR] urls[11] = file:/Users/john.camerin/.m2/repository/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar
[ERROR] urls[12] = file:/Users/john.camerin/.m2/repository/net/sourceforge/pmd/pmd-core/6.48.0/pmd-core-6.48.0.jar
[ERROR] urls[13] = file:/Users/john.camerin/.m2/repository/org/antlr/antlr4-runtime/4.7.2/antlr4-runtime-4.7.2.jar
[ERROR] urls[14] = file:/Users/john.camerin/.m2/repository/com/beust/jcommander/1.48/jcommander-1.48.jar
[ERROR] urls[15] = file:/Users/john.camerin/.m2/repository/net/sourceforge/saxon/saxon/9.1.0.8/saxon-9.1.0.8.jar
[ERROR] urls[16] = file:/Users/john.camerin/.m2/repository/org/ow2/asm/asm/9.3/asm-9.3.jar
[ERROR] urls[17] = file:/Users/john.camerin/.m2/repository/com/google/code/gson/gson/2.8.9/gson-2.8.9.jar
[ERROR] urls[18] = file:/Users/john.camerin/.m2/repository/net/sourceforge/saxon/saxon/9.1.0.8/saxon-9.1.0.8-dom.jar
[ERROR] urls[19] = file:/Users/john.camerin/.m2/repository/net/sourceforge/pmd/pmd-java/6.48.0/pmd-java-6.48.0.jar
[ERROR] urls[20] = file:/Users/john.camerin/.m2/repository/net/sourceforge/pmd/pmd-javascript/6.48.0/pmd-javascript-6.48.0.jar
[ERROR] urls[21] = file:/Users/john.camerin/.m2/repository/org/mozilla/rhino/1.7.14/rhino-1.7.14.jar
[ERROR] urls[22] = file:/Users/john.camerin/.m2/repository/net/sourceforge/pmd/pmd-jsp/6.48.0/pmd-jsp-6.48.0.jar
[ERROR] urls[23] = file:/Users/john.camerin/.m2/repository/org/slf4j/jul-to-slf4j/1.7.36/jul-to-slf4j-1.7.36.jar
[ERROR] urls[24] = file:/Users/john.camerin/.m2/repository/org/apache/maven/doxia/doxia-sink-api/1.11.1/doxia-sink-api-1.11.1.jar
[ERROR] urls[25] = file:/Users/john.camerin/.m2/repository/org/apache/maven/doxia/doxia-logging-api/1.11.1/doxia-logging-api-1.11.1.jar
[ERROR] urls[26] = file:/Users/john.camerin/.m2/repository/org/apache/maven/doxia/doxia-decoration-model/1.11.1/doxia-decoration-model-1.11.1.jar
[ERROR] urls[27] = file:/Users/john.camerin/.m2/repository/org/apache/maven/doxia/doxia-site-renderer/1.11.1/doxia-site-renderer-1.11.1.jar
[ERROR] urls[28] = file:/Users/john.camerin/.m2/repository/org/apache/maven/doxia/doxia-core/1.11.1/doxia-core-1.11.1.jar
[ERROR] urls[29] = file:/Users/john.camerin/.m2/repository/org/apache/commons/commons-text/1.3/commons-text-1.3.jar
[ERROR] urls[30] = file:/Users/john.camerin/.m2/repository/org/apache/httpcomponents/httpcore/4.4.14/httpcore-4.4.14.jar
[ERROR] urls[31] = file:/Users/john.camerin/.m2/repository/org/apache/maven/doxia/doxia-skin-model/1.11.1/doxia-skin-model-1.11.1.jar
[ERROR] urls[32] = file:/Users/john.camerin/.m2/repository/org/apache/maven/doxia/doxia-module-xhtml/1.11.1/doxia-module-xhtml-1.11.1.jar
[ERROR] urls[33] = file:/Users/john.camerin/.m2/repository/org/apache/maven/doxia/doxia-module-xhtml5/1.11.1/doxia-module-xhtml5-1.11.1.jar
[ERROR] urls[34] = file:/Users/john.camerin/.m2/repository/org/codehaus/plexus/plexus-i18n/1.0-beta-10/plexus-i18n-1.0-beta-10.jar
[ERROR] urls[35] = file:/Users/john.camerin/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar
[ERROR] urls[36] = file:/Users/john.camerin/.m2/repository/org/codehaus/plexus/plexus-velocity/1.2/plexus-velocity-1.2.jar
[ERROR] urls[37] = file:/Users/john.camerin/.m2/repository/org/apache/velocity/velocity/1.7/velocity-1.7.jar
[ERROR] urls[38] = file:/Users/john.camerin/.m2/repository/commons-lang/commons-lang/2.4/commons-lang-2.4.jar
[ERROR] urls[39] = file:/Users/john.camerin/.m2/repository/org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.jar
[ERROR] urls[40] = file:/Users/john.camerin/.m2/repository/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar
[ERROR] urls[41] = file:/Users/john.camerin/.m2/repository/commons-digester/commons-digester/1.8/commons-digester-1.8.jar
[ERROR] urls[42] = file:/Users/john.camerin/.m2/repository/commons-chain/commons-chain/1.1/commons-chain-1.1.jar
[ERROR] urls[43] = file:/Users/john.camerin/.m2/repository/commons-logging/commons-logging/1.1/commons-logging-1.1.jar
[ERROR] urls[44] = file:/Users/john.camerin/.m2/repository/dom4j/dom4j/1.1/dom4j-1.1.jar
[ERROR] urls[45] = file:/Users/john.camerin/.m2/repository/oro/oro/2.0.8/oro-2.0.8.jar
[ERROR] urls[46] = file:/Users/john.camerin/.m2/repository/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2.jar
[ERROR] urls[47] = file:/Users/john.camerin/.m2/repository/org/apache/maven/reporting/maven-reporting-api/3.1.1/maven-reporting-api-3.1.1.jar
[ERROR] urls[48] = file:/Users/john.camerin/.m2/repository/org/apache/maven/reporting/maven-reporting-impl/3.2.0/maven-reporting-impl-3.2.0.jar
[ERROR] urls[49] = file:/Users/john.camerin/.m2/repository/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar
[ERROR] urls[50] = file:/Users/john.camerin/.m2/repository/javax/enterprise/cdi-api/1.2/cdi-api-1.2.jar
[ERROR] urls[51] = file:/Users/john.camerin/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.5/org.eclipse.sisu.inject-0.3.5.jar
[ERROR] urls[52] = file:/Users/john.camerin/.m2/repository/org/apache/maven/doxia/doxia-integration-tools/1.11.1/doxia-integration-tools-1.11.1.jar
[ERROR] urls[53] = file:/Users/john.camerin/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.3.4/maven-shared-utils-3.3.4.jar
[ERROR] urls[54] = file:/Users/john.camerin/.m2/repository/org/codehaus/plexus/plexus-resources/1.2.0/plexus-resources-1.2.0.jar
[ERROR] urls[55] = file:/Users/john.camerin/.m2/repository/org/codehaus/plexus/plexus-utils/3.3.0/plexus-utils-3.3.0.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import  from realm ClassRealm[project>com.messagegears:accelerator-parent:22.2.1.0-SNAPSHOT, parent: ClassRealm[maven.api, parent: null]]]
 

推荐答案

请看这里的讨论:https://issues.apache.org/jira/browse/MPMD-353

简而言之,您有以下选项:

  • 升级到Maven 3.8.6或更高版本
  • 继续使用maven-pmd-plugin 3.17.0
  • 等待新版本的maven-pmd-plugin发布,该版本修复了该问题,使其能够再次与旧的maven版本一起工作.

Java相关问答推荐

为什么我的画布没有显示在PFA应用程序中?

更新我们的一个文物后出现了严重的符号引用错误

JDK22执行repackage of goal org. springframework. boot:spring—boot—maven—plugin:3.2.3:repackage failed:unsupported class file major version 66—>

如何才能使我的程序不会要求两次输入?

RichFaces 3.x-Spring Boot-迁移web.xml

如何从错误通道回复网关,使其不会挂起

使用Jolt将字段转换为列表

如何只修改父类ChroniclerView位置0处的第一个嵌套ChroniclerView(child)元素?

如何从日志(log)行中删除包名称?

如何在构建Gradle项目时排除com.google.guava依赖项的一个变体

使用htmlunit和java单击按钮

Oj算法 MatrixR032从字符串、归一化和余弦相似度计算创建

如何在Java springboot中从一个端点发送多个时间响应?

如果执行@BeForeEach#repository.save(),则测试中的UnitTest最终UUID会发生更改

为什么我不能建立输入/输出流?Java ServerSocket

我的代码是线程安全的吗?[Java、CAS、转账]

如何使用WebEnvironment.RANDOM_PORT获得第二个随机端口?

为什么JavaFX MediaPlayer音频播放在Windows和Mac上运行良好,但在Linux(POPOS/Ubuntu)上却有问题?

Java中的一个错误';s stdlib SocksSocketImpl?

如何在java中从以百分比表示的经过时间和结束日期中找到开始日期