带有配置的Eclipse Checkstyle和服务器上的SuppressionFilter

时间:2010-01-21 15:05:26

标签: eclipse checkstyle

我已将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 ...

3 个答案:

答案 0 :(得分:10)

目前无法按照Remote Configuration Files cannot use a SuppressionFilter - ID: 2018081中的报告进行此操作。实际上,问题出现在Checkstyle中,它使用java.io.File对象作为外部SuppressionFilter文件(因此设置以http://开头的值将不起作用)。 Checkstyle上有一项功能请求可以更改此功能(请参阅Allow remote references to additional file configuration - ID: 2018608)。但是不要指望这些更改很快发生(除非开始努力工作:)

话虽如此,虽然我完全理解公司范围的checkstyle配置文件的需求,但我更需要共享的SuppressionFilter文件。毕竟,它的内容是项目特定的,不是吗?所以,我认为你应该实际使用另一个属性,例如${workspace}(或者你自己的属性,我对Expanding property placeholders的理解是使用.properties文件应该可以使用Remote配置也是)并要求每个项目提供自己的文件及其SuppressionFilter,它将从工作区引用。根据惯例,这应该工作。

答案 1 :(得分:0)

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

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

我已经使用5.5版本的eclipse-cs通过修补插件的jar文件进行了测试,但效果非常好。

答案 2 :(得分:0)

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

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

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