2014-07-04 30 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