Как я могу подавить определенные правила checkstyle в затмении?

Я пытаюсь использовать фильтр подавления, но происходит непредвиденная ошибка.

Ниже приведено сообщение об ошибке.

"невозможно инициализировать модуль SuppressionFilter - невозможно установить для свойства 'file' в модуле SuppressionFilter значение 'checkstyle-suppressions.xml': невозможно найти checkstyle-suppressions.xml - корневой элемент документа"suppressions", должен соответствовать корневому" модулю "DOCTYPE."

Не могли бы вы дать мне знать, как я могу устранить эту ошибку?

Ниже приведены файл конфигурации и содержимое файла подавления, которые я использовал. Я настроил фильтр подавления через меню Eclipse (Windows > Настройки> Checkstyle > Настройка> Фильтры известных модулей> Фильтр подавления> Добавить)

======================================

файл конфигурации

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">

<module name="Checker">
    <property name="severity" value="warning"/>
    <module name="TreeWalker">
        <module name="MagicNumber">
            <property name="ignoreNumbers" value="-1, 0, 1"/>
        </module>
    </module>
</module>

===================================

Файл фильтра подавления...

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">         

<suppressions>
    <suppress checks="MagicNumberCheck"
              files="Home.java"
              lines="350-370"/>
</suppressions>

1 ответ

Решение

Ваш файл фильтра подавления использует синтаксис 1.1, но утверждает, что использует более новый синтаксис 1.3. Замените заголовок так:

<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN"
    "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">

Кроме того, ваш файл конфигурации должен ссылаться на фильтр подавления. Добавьте определение модуля, как это (добавить его до последнего закрытия </module> тег, не под Treewalker):

<module name="SuppressionFilter">
    <property name="file" value="${workspace_loc}/MyProject/suppressions.xml"/>
</module>

С использованием ${workspace_loc} Переменная гарантирует, что это работает, даже когда вы копируете или переименовываете рабочее пространство.

Другие вопросы по тегам