Почему Checkstyle пытается создать чек для моего слушателя - PullRequest
1 голос
/ 27 января 2010

Я реализовал прослушиватель Checkstyle. Раньше он работал (я думаю, с бета-версией 5.0), но теперь (с 5.0), контрольный стиль завершается неудачно со следующим CallStack

  Unable to create Checker: cannot initialize module de.xyz.toxicity.TeamcityListener - Unable to instantiate de.xyz.toxicity.TeamcityListener
  com.puppycrawl.tools.checkstyle.api.CheckstyleException: cannot initialize module de.xyz.toxicity.TeamcityListener - Unable to instantiate de.xyz.toxicity.TeamcityListener
    at com.puppycrawl.tools.checkstyle.Checker.setupChild(Checker.java:177)
    at com.puppycrawl.tools.checkstyle.api.AutomaticBean.configure(AutomaticBean.java:207)
    at com.puppycrawl.tools.checkstyle.Main.createChecker(Main.java:138)
    at com.puppycrawl.tools.checkstyle.Main.main(Main.java:115)
  Caused by: com.puppycrawl.tools.checkstyle.api.CheckstyleException: Unable to instantiate de.xyz.toxicity.TeamcityListener
    at com.puppycrawl.tools.checkstyle.PackageObjectFactory.createModule(PackageObjectFactory.java:156)
    at com.puppycrawl.tools.checkstyle.Checker.setupChild(Checker.java:152)
    ... 3 more
  Caused by: com.puppycrawl.tools.checkstyle.api.CheckstyleException: Unable to instantiate de.xyz.toxicity.TeamcityListenerCheck
    at com.puppycrawl.tools.checkstyle.PackageObjectFactory.doMakeObject(PackageObjectFactory.java:99)
    at com.puppycrawl.tools.checkstyle.PackageObjectFactory.createModule(PackageObjectFactory.java:153)
    ... 4 more

Мой файл конфигурации выглядит следующим образом

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

<module name="Checker">
<property name="severity" value="warning"/>
<module name="de.xyz.toxicity.TeamcityListener" />
    <module name="FileLength">
        <property name="max" value="500"/>
</module>

<module name="TreeWalker">
    <module name="FileContentsHolder"/>

    <module name="AnonInnerLength">
        <property name="max" value="35"/>
    </module>
    // ... more modules like this follow
</module>
</module>

Все работает нормально, когда мой собственный Слушатель удален из конфига.

Что меня действительно смущает: почему checkstyle ищет класс TeamcityListenerCheck? Такого класса не существует. Мне это нужно? Как это должно выглядеть?

Ответы [ 2 ]

1 голос
/ 27 января 2010

Глупо ... это была простая проблема с classpath.

0 голосов
/ 14 марта 2012

Можете ли вы дать больше информации о проблеме с classpath? У меня та же проблема. Когда я запускаю Checkstyle в ANT, используя sun_checks.xml ... никаких проблем. Когда я добавляю свой custom_check.xml, я получаю те же сообщения об ошибках, которые вы видите. Когда вы говорите Classpath, подразумеваете ли вы путь к классу среды, например,% CLASSPATH%, или настройку classpath в файле ANT?

Мой ANT-файл настроен так:

<taskdef resource="checkstyletask.properties">
        <classpath>
                <pathelement location="\bin"/> 
                <pathelement location="\lib"/> 
                <!--<pathelement location="C:ant\lib\myCSCode.jar"/> -->
                <pathelement location="C:\checkstyle-5.5\checkstyle-5.5-all.jar"/>
        </classpath>
</taskdef>
...