【问题标题】:Checkstyle Error in eclipse: cannot initialize module FilesFilter - Unable to instantiate FilesFilterEclipse 中的 Checkstyle 错误:无法初始化模块 FilesFilter - 无法实例化 FilesFilter
【发布时间】:2014-08-25 20:44:43
【问题描述】:

我正在使用 checkstyle 5.7

我已经编写了一个自定义FilesFilter,如下面的 checkstyle 文档中所述, http://checkstyle.sourceforge.net/writingfilters.html

按照文档中的建议,我编写了一个 java 文件,并在我的配置 xml 文件的“Checker”模块下为其添加了一个条目。 所以,这个自定义过滤器应该忽略所有文件名中包含字符串“Test”的文件。

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

由于配置文件中有此条目,检查样式​​未在 eclipse 中加载并出现以下错误,

无法初始化模块 FilesFilter - 无法实例化 文件过滤器

请帮忙。

【问题讨论】:

  • This postthis other post 可能会对您有所帮助。
  • 谢谢托马斯。这不完全是一个解决方案,正如我想的那样,checkstyle 应该从项目类路径中拾取自定义过滤器类。虽然,我找到了一种解决方法,它节省了数小时的工作时间(可能如您的帖子中所解释的那样。)我将把它作为一个单独的答案放在下面。干杯。

标签: eclipse filter checkstyle


【解决方案1】:

我认为目前还没有直接的解决方案。或者,如果您准备投入数小时的时间,也可能存在。

这是我作为解决方法所做的。

在 Eclipse 中,禁用一个包的检查样式(例如我的测试包),

  1. 转到,项目 -> 属性 -> 检查样式
  2. 在 Checkstyle Main 选项卡上,“Exclude from checking..”部分带有一组复选框。
  3. 选中复选框“files from packages:”。
  4. 点击右上角的“Change..”按钮或双击“files from packages:
  5. 选择您希望 Checkstyle 忽略的包。就我而言,我选择了com/myproject/test/ 包,就是这样。 Checkstyle 会忽略测试包中的所有文件。

如果您使用 Checkstyle 作为 ANT 任务,您可以使用 excludes 选项,如以下代码中所述,

<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>

这对我有用:)

【讨论】:

  • 这没有回答如何让自定义文件过滤器在 Eclipse 中工作。它仅显示如何使用 Eclipse-CS GUI 从检查中排除文件。
  • 没错,托马斯。我没有尝试过,但以下链接可能有用。它谈到了添加自定义检查。同样,我们可以添加自定义过滤器。 stackoverflow.com/questions/18529117/…
猜你喜欢
  • 1970-01-01
  • 2015-05-22
  • 2015-05-17
  • 1970-01-01
  • 2010-11-15
  • 2013-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多