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