7

我已将 Eclipse 配置为使用位于服务器上的远程 checkstyle 配置,我通过 HTTP 访问该配置。这工作正常,但配置包含:

<module name="SuppressionFilter">
<property name="file" value="${basedir}/checkstyle-filter.xml"/>
</module>

所以我尝试设置一个附加属性“basedir”,它指向配置所在的同一目录。当我尝试在项目上运行 checkstyle 时出现错误:无法初始化模块 SuppressionsFilter - 无法将模块 SuppressionFilter 中的属性 'file' 设置为 'http:// "my Url " /checkstyle-filter.xml'

关于如何配置 Eclipse 以使用来自服务器的 checkstyle 配置的任何建议,即使它包含 SuppressionFilter?我不想在每个项目中都放置一个 checkstyle-filter ...

4

3 回答 3

10

这目前是不可能的,因为远程配置文件不能使用 SuppressionFilter - ID: 2018081中报告。实际上,问题出在 Checkstyle 中,它使用java.io.File外部 SuppressionFilter 文件的对象(因此设置以 http:// 开头的值将不起作用)。Checkstyle 上有一个功能请求来更改此设置(请参阅允许远程引用附加文件配置 - ID:2018608)。但不要指望这些变化会很快发生(除非开始努力工作:)

话虽如此,虽然我完全理解对公司范围的 checkstyle 配置文件的需求,但我对共享 SuppressionFilter 文件的需求感到更加惊讶。毕竟,它的内容是特定于项目的,不是吗?因此,我认为您实际上应该使用另一个属性,例如${workspace}(或您自己的属性,我对扩展属性占位符的理解是使用.properties文件也应该与远程配置一起使用)并要求每个项目提供自己的文件其 SuppressionFilter 将从工作区引用。根据惯例,这应该可行。

于 2010-01-22T09:43:50.277 回答
1

实际上,您可以使用抑制滤波器。我使用 5.6 eclipse checkstyle 插件通过远程配置进行了这种设置。只需将抑制文件放在与 checkstyle.xml 文件相同的远程目录中,然后使用以下内容:

<property name="file" value="${config_loc}/suppression.xml" />

然后它将与eclipse一起使用。基本上只需将 ${base_dir} 替换为 ${config_loc}

于 2013-01-30T20:01:14.467 回答
0

我无法向原始功能请求添加补丁,因此我在这里创建了一个新功能请求:https ://sourceforge.net/tracker/?func=detail&atid=397081&aid=3485185&group_id=29721

我已经实现了这个功能,因为我需要它能够在公司范围内禁用对单元测试和 Eclipse 生成的 NLS 类的某些检查。

我已经用 eclipse-cs 的 5.5 版本通过修补插件的 jar 文件对其进行了测试,它工作得很好。

于 2012-02-07T04:08:10.230 回答