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

时间:2018-05-20 00:33:24

标签: java maven maven-plugin pmd

我正在尝试添加

<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>

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上执行目标org.apache.maven.plugins:maven-pmd-plugin:3.9.0:pmd(pmd):目标org.apache.maven.plugins的执行pmd:maven-pmd-plugin :3.9.0:pmd失败:执行org.apache.maven.plugins时遇到API不兼容:maven-pmd-plugin:3.9.0:pmd:java.lang.ClassFormatError:方法中缺少Code属性非本机或类文件中的抽象javax / faces / application / FacesMessage $ Severity

运行mvn validate(或mvn clean install)时

在服务器上部署Java EE应用程序时,如何处理此特定错误有很多解释,但这使得很难找到可能适用于插件执行的方法。

java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/faces/webapp/FacesServlet中建议的依赖项的任意组合添加到插件的dependencies不会更改错误。

我注意到3.5.2发生了错误,但3.3.9没有发生错误,但是我发现这可能是Maven错误的失败。

我正在使用使用PMD 7.0.0的maven-pmd-plugin 3.9.0。

1 个答案:

答案 0 :(得分:0)

此行为是由https://github.com/pmd/pmd/issues/1131提交的PMD问题引起的。