当前位置: 首页 > 知识库问答 >
问题:

maven-pmd-plugin执行失败,原因是“在类文件中非本机或抽象的方法中缺少代码属性”

林礼骞
2023-03-14

我正在尝试添加

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-pmd-plugin</artifactId>
    <version>3.9.0</version>
    <executions>
        <execution>
            <id>pmd-check</id>
            <phase>validate</phase>
            <goals>
                <goal>check</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <printFailingErrors>true</printFailingErrors>
        <rulesets>
            <ruleset>code-analysis/ruleset.xml</ruleset>
        </rulesets>
    </configuration>
</plugin>

使用< code>ruleset.xml

<?xml version="1.0"?>
<ruleset name="Custom ruleset"
        xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
    <description>
        The default ruleset
    </description>
    <rule ref="rulesets/java/strings.xml">
        <exclude name="AvoidDuplicateLiterals"/>
    </rule>
    <rule ref="rulesets/java/strings.xml/AvoidDuplicateLiterals">
        <properties>
            <property name="skipAnnotations" value="true"/>
        </properties>
    </rule>
    <rule ref="rulesets/java/unusedcode.xml"/>
    <rule ref="rulesets/java/strictexception.xml"/>
</ruleset>

到Primefaces的POM,由于以下原因而失败

未能在项目primefaces上执行target org.apache.maven.plugins:maven-pmd-plugin:3.9.0:pmd (pmd) : 执行 goal org.apache.maven.plugins:maven-pmd-plugin:3.9.0:pmd 失败: 执行 org.apache.maven.plugins:maven-pmd-plugin:3.9.0:pmd: java.lang.ClassFormatError: 在类文件 javax/faces/application/FacesMessage 中非本机或抽象的方法中缺少代码属性

运行< code>mvn验证(或< code>mvn全新安装)时。

服务器上部署JavaEE应用程序时,有很多解释如何处理这个特定的错误,但是这使得很难找到一种适用于插件执行的方法。

将java.lang.ClassFormatError中建议的任何依赖项组合添加到插件的<Code>依赖项中:类文件javax/faces/webapp/FacesServlet中非本机或抽象的方法中缺少代码属性

我注意到错误发生在3.5.2,但不是3.3.9,但是我看到失败怎么可能是Maven错误。

我使用的是maven pmd插件3.9.0,它使用pmd 7.0.0。

共有1个答案

殳俊晤
2023-03-14

此行为是由PMD问题引起的,该问题已在https://github.com/pmd/pmd/issues/1131.

 类似资料:
  • 问题内容: 我对javaee Bibliothek有maven依赖性。 我在某些类中的Eclipse中收到错误。 我添加了javax.mail依赖项。 它没有用。任何想法?? 问题答案: 它不起作用,因为依赖项中的类是特殊构造的。它们不可用,因为缺少方法的实现。 仅仅将依赖项中的类添加到类路径中并没有帮助,因为来自类的类已经存在。有dependecy单独解决您的问题,但最有可能你还需要从其他类。

  • 问题内容: 使用javaMail api在spring mvc Web应用程序上发送电子邮件时,我感到奇怪。 下面是我的mail-cfg.xml 我的POM文件 全栈跟踪 问题答案: 将被用于编译,不运行,包括单元测试。如果需要适合运行的类,请对Java EE应用程序服务器运行。 另外,正确的名称是Java EE而不是JEE。

  • OpenPatricianDisplay-0.5.0-Snapshot未指定主类 OpenPatricianDisplay-0.5.0-Snapshot无法启动JVM 看看Windows和Linux包的cfg文件就会发现它们是不同的。当用Windows中的替换Linux时,会产生不同的错误。因此,我不认为他们的不同是原因。在Linux上使用插件创建一个单一模块JavaFX演示应用程序。为了弄清楚它

  • 我尝试使用docker构建一个Quarkus本机可执行文件,使用以下命令““ Quarkus版本:2.2.1.最终Maven版本:3.8.1Java版本:11

  • 由于以下原因,尝试安装“Build Pipeline Plugin v1.5.6”失败: 哈德逊。util。IOException2:未能从下载http://updates.jenkins-ci.org/download/plugins/jquery/1.11.2-0/jquery.hpi(重定向至:http://ftp.tsukuba.wide.ad.jp/software/jenkins/pl

  • 问题内容: 我们有一个Maven多模块项目,其中包含一个父级(HelloWorld)和不同的子级(HelloWorldServices和HelloWorldPresentation),并使用Jenkins进行构建。 运行成功的测试后的错误是 前面的线说 这是我定义父pom JaCoCo插件的方式: 我没有明确提到过surefire。我还尝试了到处都可以找到的将argLine放入配置中的结果,但是所