2014-07-04 33 views
1

我使用的CheckStyle 5.7Checkstyle的錯誤在日食:無法初始化模塊FilesFilter - 無法實例FilesFilter

我寫了一個自定義的FilesFilter如下面的CheckStyle文檔中解釋, http://checkstyle.sourceforge.net/writingfilters.html

如建議在文檔,我寫了一個java文件,並在我的config xml文件中的「Checker」模塊下添加了一個條目。 因此,這個自定義過濾器應該忽略包含字符串「Test」的所有文件的文件名。

<module name="com.mycompany.myproject.filters.FilesFilter"> 
    <property name="files" value="Test" /> 
</module> 

由於在配置文件中此項,檢查風格是不是在Eclipse加載並給出以下錯誤,

無法初始化模塊FilesFilter - 無法實例 FilesFilter

請幫忙。

感謝, 尼基爾

+0

[This post](http://stackoverflow.com/q/23917915/1005481)或[this other post](http://stackoverflow.com/q/18255911/1005481)可能會對您有所幫助。 –

+0

謝謝托馬斯。這不完全是一個解決方案,因爲我想,checkstyle應該從項目類路徑中提取自定義過濾器類。儘管我找到了解決問題的工作,這節省了數小時的工作時間(可能如您在文章中所解釋的那樣)。下面我將把它作爲一個單獨的答案。乾杯。 – nikhil

回答

0

我認爲這個沒有直接的解決方案呢。或者,如果你準備投入數小時的時間,可能會有。

以下是我作爲解決方法所做的工作。

在Eclipse中,禁用checkstyles一個包(如測試包在我的情況),
1.進入,項目 - >屬性 - > Checkstyle的
2.在Checkstyle的主要選項卡中,有一節「排除從檢查..「與一組複選框。
3.選中複選框「來自軟件包的文件:」。
4.單擊右上角的「更改..」按鈕,或者只需雙擊「來自軟件包的文件:」
5.選擇要讓Checkstyle忽略的軟件包。在我的情況下,我選擇了com/myproject/test/package,就是這樣。 Checkstyle忽略測試包中的所有文件。

如果您正在使用的Checkstyle作爲一個Ant任務,你可以使用排除選項,如下面的代碼解釋,

<target name="applyCheckStyle" depends="build" description="--> apply check style to all java files, excluding test package."> 
    <checkstyle config="${checkstyle.config}"> 
     <fileset dir="${src.dir}" includes="**/*.java" excludes="**/test/**" /> 
     <formatter type="plain" /> 
     <formatter type="xml" toFile="${build.dir}/checkstyle_errors.xml" /> 
    </checkstyle> 
</target> 

這爲我工作:)

歡呼聲, 尼基爾

+0

這並不回答如何讓自定義文件過濾器在Eclipse中工作。它僅顯示如何使用Eclipse-CS GUI排除文件檢查。 –

+0

這就是托馬斯。我還沒有嘗試,但以下鏈接可能會有用。它討論了添加自定義檢查。同樣,我們可以添加自定義過濾器。 http://stackoverflow.com/questions/18529117/generating-checkstyle-reports-with-extended-checks – nikhil