2010-01-27 116 views
1

我已經實現了Checkstyle Listener。它的工作之前,(我想用5.0測試版),但現在(5.0),CheckStyle的失敗與以下調用堆棧Checkstyle爲什麼會嘗試爲我的聽衆創建檢查

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類? 這樣的類不存在。我需要它嗎?它應該是什麼樣子?

回答

1

愚蠢的我......這是一個簡單的類路徑問題。

0

你能提供關於類路徑問題的更多信息嗎?我有同樣的問題。當我使用sun_checks.xml在ANT中運行Checkstyle時...沒有問題。當我添加我的custom_check.xml時,我會看到與您看到的相同的錯誤消息。當你說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> 
+0

我de.xyz.toxicity.TeamcityListener是不是在類路徑中。 – 2012-03-14 09:36:05

+0

謝謝!那正是我的問題。 ANT類路徑不喜歡我的jar或類的相對路徑。我將這些課程放在完整的路徑中,並且工作正常。我可以忍受這一點。 – bono 2012-03-15 15:59:37

相關問題