Checkstyle: CheckstyleException: не удается найти, но файл существует - PullRequest
0 голосов
/ 03 мая 2020

Моя конфигурация Checkstyle не может найти мои подавления. xml, но она существует, и путь к файлу, который она использует, работает. И мой контрольный стиль. xml и подавления. xml находятся в config / checkstyle. Мой контрольный стиль. xml имеет это:

<module name="SuppressionFilter">
    <property name="file" value="${config_loc}\suppressions.xml"/>
    <property name="optional" value="false"/>
</module>

Когда я запускаю gradlew check --stacktrace, трассировка стека показывает это:

Caused by: com.puppycrawl.tools.checkstyle.api.CheckstyleException: Unable to find: C:\Users\ntroncoso\Online Drive\projects\test-project\test-project-sdk\config\checkstyle\suppressions.xml
        at com.puppycrawl.tools.checkstyle.filters.SuppressionsLoader.getSuppressionLoader(SuppressionsLoader.java:287)
        at com.puppycrawl.tools.checkstyle.filters.SuppressionsLoader.loadSuppressions(SuppressionsLoader.java:238)
        at com.puppycrawl.tools.checkstyle.filters.SuppressionsLoader.loadSuppressions(SuppressionsLoader.java:224)
        at com.puppycrawl.tools.checkstyle.filters.SuppressionFilter.finishLocalSetup(SuppressionFilter.java:269)
        at com.puppycrawl.tools.checkstyle.api.AutomaticBean.configure(AutomaticBean.java:197)
        at com.puppycrawl.tools.checkstyle.Checker.setupChild(Checker.java:477)
        ... 206 more
Caused by: java.io.FileNotFoundException: http://www.puppycrawl.com/dtds/configuration_1_3.dtd
        at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:647)
        at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1304)
        at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1270)
        at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:264)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1161)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1045)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:959)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
        at com.puppycrawl.tools.checkstyle.XmlLoader.parseInputSource(XmlLoader.java:86)
        at com.puppycrawl.tools.checkstyle.filters.SuppressionsLoader.getSuppressionLoader(SuppressionsLoader.java:283)

Как я уже говорил, я могу скопировать и вставить это Путь к файлу в проводнике, и он откроется. Я попытался просто жестко запрограммировать полный путь, но я получаю ту же ошибку. Единственное, о чем я могу думать, это часть \ ntroncoso. Некоторые системы будут воспринимать это как новую линию на пути. Но, как правило, ошибка также выводит новую строку, поэтому я не чувствую, что это проблема.

1 Ответ

1 голос
/ 04 мая 2020

FileNotFoundException: http://www.puppycrawl.com/dtds/configuration_1_3.dtd

Это ваша истинная ошибка. DTD вашего файла подавления неверен. Во-первых, вы используете DTD конфигурации для файла подавления. Во-вторых, домен puppycrawl устарел и с тех пор перешел на checkstyle.org.

DTD следует изменить на https://checkstyle.org/dtds/suppressions_1_2.dtd, который является самым последним DTD для последней версии Checkstyle на данный момент.

Смотрите пример правильного файла подавления https://github.com/checkstyle/checkstyle/blob/master/config/suppressions.xml.

...