Плагин Checkstyle в Eclipse: сбой выполнения Checkstyle из-за внутренней ошибки

#java #eclipse #checkstyle

Вопрос:

Я пытаюсь выяснить, как решить эту проблему. У меня установлена среда разработки Eclipse Ide для корпоративных java и веб-разработчиков, версия 2021-06 (4.20.0) и плагин Checkstyle, версия 8.44.0.

Редактировать: мой SO — ubuntu 20.04.2 LTS

Проблема в том, что когда я создаю новую конфигурацию, либо с нуля, либо копирую конфигурацию проверки Suns (это моя цель, я хочу конфигурацию, похожую на Suns check, но с некоторыми отличиями) из меню Window -> preferences -> Checkstyle. Затем, после создания конфигурации, я пытаюсь использовать ее в проекте (стандартном проекте Java), щелкнув правой кнопкой мыши проект, свойства и перейдите в checkstyle, выберите «checkstyle активен для этого проекта», а затем выберите конфигурацию, которую я только что создал из выпадающего списка. И после этого, щелкнув правой кнопкой мыши проект, перейдя в checkstyle -> «проверить код с помощью checkstyle», появляется следующее сообщение:

Выполнение Checkstyle не удалось из-за внутренней ошибки, пожалуйста, проверьте журнал ошибок для получения подробной информации…

Итак, я зашел в журнал eclipse и обнаружил следующее:

 > 
!ENTRY net.sf.eclipsecs.core 4 0 2021-10-22 23:19:43.102
!MESSAGE Checkstyle-Plugin: unable to parse configuration stream
!STACK 0
com.puppycrawl.tools.checkstyle.api.CheckstyleException: unable to parse configuration stream
    at com.puppycrawl.tools.checkstyle.ConfigurationLoader.loadConfiguration(ConfigurationLoader.java:325)
    at com.puppycrawl.tools.checkstyle.ConfigurationLoader.loadConfiguration(ConfigurationLoader.java:287)
    at net.sf.eclipsecs.core.builder.CheckerFactory.createCheckerInternal(CheckerFactory.java:217)
    at net.sf.eclipsecs.core.builder.CheckerFactory.createChecker(CheckerFactory.java:122)
    at net.sf.eclipsecs.core.builder.Auditor.runAudit(Auditor.java:139)
    at net.sf.eclipsecs.core.builder.CheckstyleBuilder.handleBuildSelection(CheckstyleBuilder.java:307)
    at net.sf.eclipsecs.core.jobs.RunCheckstyleOnFilesJob.runInWorkspace(RunCheckstyleOnFilesJob.java:119)
    at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:42)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.xml.sax.SAXException: com.puppycrawl.tools.checkstyle.api.CheckstyleException: Property ${org.checkstyle.sun.suppressionxpathfilter.config} has not been set
com.puppycrawl.tools.checkstyle.api.CheckstyleException: Property ${org.checkstyle.sun.suppressionxpathfilter.config} has not been set
    at com.puppycrawl.tools.checkstyle.ConfigurationLoader$InternalLoader.startElement(ConfigurationLoader.java:530)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:518)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:183)
    at java.xml/com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:752)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1386)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2725)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:541)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1224)
    at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
    at com.puppycrawl.tools.checkstyle.XmlLoader.parseInputSource(XmlLoader.java:86)
    at com.puppycrawl.tools.checkstyle.ConfigurationLoader.parseInputSource(ConfigurationLoader.java:198)
    at com.puppycrawl.tools.checkstyle.ConfigurationLoader.loadConfiguration(ConfigurationLoader.java:315)
    ... 8 more
Caused by: com.puppycrawl.tools.checkstyle.api.CheckstyleException: Property ${org.checkstyle.sun.suppressionxpathfilter.config} has not been set
    at com.puppycrawl.tools.checkstyle.ConfigurationLoader.replaceProperties(ConfigurationLoader.java:376)
    at com.puppycrawl.tools.checkstyle.ConfigurationLoader.access$500(ConfigurationLoader.java:51)
    at com.puppycrawl.tools.checkstyle.ConfigurationLoader$InternalLoader.startElement(ConfigurationLoader.java:525)

... 23 more
 

Похоже, это проблема со свойством org.checkstyle.sun.suppressionxpathfilter.config, поэтому я погуглил его и нашел следующую страницу:
https://checkstyle.sourceforge.io/sun_style.html это кое-что говорит о значении по умолчанию, которое должно иметь это свойство, поэтому я настроил это значение в окне свойств для своей конфигурации, но ничего не изменилось.

Что может быть причиной этого? Как я могу решить эту проблему?

Комментарии:

1. Какой плагин Checkstyle (существует более одного)? Пожалуйста, убедитесь, что Eclipse и установленные плагины обновлены, и соответствующим образом обновите свой вопрос.