2010-01-21 74 views
4

我已将Eclipse配置为使用位于服务器上的远程Checkstyle配置,该配置通过HTTP访问。这工作得很好,但配置包含:在服务器上使用配置和SuppressionFilter的Eclipse Checkstyle服务器上的配置和SuppressionFilter

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

所以我尝试设置一个附加属性“的basedir”指向其中配置是相同的目录。当我尝试在项目运行的CheckStyle我得到一个错误:无法初始化模块SuppressionsFilter - 不能设置模块SuppressionFilter财产“文件”到“HTTP:// ‘我的网址’ /checkstyle-filter.xml”

关于如何将Eclipse配置为使用来自服务器的checkstyle配置的任何建议,即使它包含SuppressionFilter?我不想在每个项目中插入checkstyle筛选器...

回答

10

这是目前不可能的报告Remote Configuration Files cannot use a SuppressionFilter - ID: 2018081。事实上,问题出在Checkstyle中,它使用外部SuppressionFilter文件的java.io.File对象(因此设置以http://开头的值将不起作用)。 Checkstyle有一项功能要求可以改变这种情况(见Allow remote references to additional file configuration - ID: 2018608)。但不要指望这些变化很快发生(除非开始努力:)

这就是说,虽然我完全理解需要一个企业范围的checkstyle配置文件,我更对共享SuppressionFilter文件的需求感到惊讶。毕竟,它的内容是项目特定的,不是吗?所以,我认为你应该使用另一个属性,例如${workspace}(或者你自己的属性,我对Expanding property placeholders的理解是,使用.properties文件也应该与远程配置一起工作),并要求每个项目提供它自己的文件与它的SuppressionFilter将从工作区引用。根据惯例,这应该工作。

+1

非常感谢您的详细解答。 问题是项目都非常相似,它们都生成不符合checkstyle配置的源代码,也不需要这样做。 我将跳过它作为远程配置,我将只使用eclipse-cs中的扩展点,并将配置文件包含在我在发行版中包含的插件中。 – Ingo 2010-01-22 11:24:42

+0

不客气。现在我明白了,这对你的情况确实有意义。顺便说一句:认识一个好答案的常见方式是提升它;-)。 – 2010-01-22 11:31:17

+0

我是新来的Stackoverflow并得到“投票声望15声望”,我会赶上它,一旦我到达那里。猜测我应该自己贡献并回复一些帖子;) 我会记住的,thanx – Ingo 2010-01-22 11:53:14

0

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

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

然后它会用eclipse工作。基本上只需用$ {config_loc}替换$ {base_dir}