2010-01-21 70 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}