Выполнение maven-pmd-plugin завершается неудачно из-за «атрибута Absent Code в методе, который не является собственным или абстрактным в файле класса» - PullRequest
0 голосов
/ 20 мая 2018

Я пытаюсь добавить

<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, который не работает из-за

Не удалось выполнить цель org.apache.maven.plugins: maven-pmd-plugin: 3.9.0: pmd (pmd) для основных компонентов проекта: Выполнение pmd цели org.apache.maven.plugins: maven-pmd-плагин: 3.9.0: сбой pmd: при выполнении org.apache.maven.plugins: maven-pmd-plugin: 3.9.0: pmd: java.lang.ClassFormatError: отсутствует атрибут кода в методе, который не является атрибутом API.родной или абстрактный в файле класса javax / Faces / Application / FacesMessage $ Severity

при запуске mvn validate (или mvn clean install).

Существует множество объяснений, как обращаться сэта конкретная ошибка при развертывании приложений Java EE на серверах, однако затрудняет поиск подхода, который мог бы работать для выполнения плагина.

Добавлена ​​любая комбинация зависимостей, предложенная в java.lang.ClassFormatError:Атрибут Отсутствующий код в методе, который не является natIve или аннотация в файле класса javax / Face / WebApp / FacesServlet для плагина dependencies не меняет ошибку.

Я заметил, что ошибка возникает с 3.5.2, но не с 3.3.9, однако я вижу, что это может быть ошибкой Maven.

Я использую maven-pmd-plugin 3.9.0, который использует PMD 7.0.0.

1 Ответ

0 голосов
/ 22 мая 2018

Такое поведение вызвано проблемой PMD, которая была подана в https://github.com/pmd/pmd/issues/1131.

...