【问题标题】:Eclipse Checkstyle with configuration and SuppressionFilter on server服务器上带有配置和 SuppressionFilter 的 Eclipse Checkstyle
【发布时间】:2011-01-07 18:51:40
【问题描述】:

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

【问题讨论】:

    标签: eclipse checkstyle


    【解决方案1】:

    正如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 文件也应该与远程配置一起使用)并询问每个项目以提供其自己的文件及其 SuppressionFilter,该文件将从工作区引用。根据惯例,这应该可行。

    【讨论】:

    • 非常感谢您的详细解答。问题是这些项目都非常相似,它们都生成不符合 checkstyle 配置的源代码,也不需要这样做。我将跳过它作为远程配置,我将只使用 eclipse-cs 中的扩展点并将配置包含在我包含在发行版中的插件中。
    • 不客气。现在我明白了,在你的情况下确实有意义。顺便说一句:识别一个好的答案的常用方法是支持它;-)。
    • 我是 Stackoverflow 的新手,并获得了“投票需要 15 声望”,一旦我到达那里,我会投票。我想我应该自己贡献并回答一些帖子;)我会记住这一点的,谢谢
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      然后它将与 Eclipse 一起工作。基本上只需将 ${base_dir} 替换为 ${config_loc}

      【讨论】:

        猜你喜欢
        • 2016-01-29
        • 2011-05-10
        • 1970-01-01
        • 1970-01-01
        • 2019-03-25
        • 1970-01-01
        • 2014-04-28
        • 2011-11-04
        相关资源
        最近更新 更多