【问题标题】:CheckStyle IDEA using suppression file for custom checksCheckStyle IDEA 使用抑制文件进行自定义检查
【发布时间】:2015-09-18 00:31:12
【问题描述】:

我有一个带有自定义检查的 maven 存储库,我希望所有其他 maven 存储库都依赖它。我想在我的一个存储库中禁止检查某些生成的代码。有两种方法可以设置抑制文件:

  1. 在自定义检查 repo 中有抑制文件,然后在自定义检查样式 xml 中指定 SuppressionFilter:

    <module name="SuppressionFilter">
       <property name="file" value="${samedir}/checkstyle_suppressions.xml"
       default="src/main/resources/checkstyle_suppressions.xml"/>
    </module>
    

然后在我想要运行自定义 checkstyle 的 repo 的 pom.xml 文件的 maven 插件部分:

    <suppressionsLocation>checkstyle_suppressions.xml</suppressionsLocation>
    <suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
  1. 不要将 SuppressionFilter 部分放在自定义 checkstyle xml 中。为要检查的 repo 设置相同的 pom.xml。可以将抑制文件放置在要检查的存储库的本地。

这两种方法都适用于命令行“mvn clean validate”。但两者都不适用于 Intellij 的 CheckStyle IDEA 插件。 Intellij 插件抱怨找不到上述第一种方法的抑制文件。

如果他们不需要,我不想强​​制每个 repo 都有一个抑制文件。我想知道是否有一种方法可以使 CheckStyle IDEA 抑制工作,而不必拥有同一个抑制文件的多个副本(自定义检查 repo 中的 1 个,本地 repo 中的 1 个)。

谢谢!

【问题讨论】:

标签: checkstyle intellij-plugin


【解决方案1】:

插件使用的逻辑是

  • 文件路径是否解析?
  • 相对于规则文件的文件路径是否存在?
  • 是否存在相对于模块内容根目录、模块文件或项目基目录的文件路径?

如果没有,它会放弃。所以有两种可能:

  • 逻辑中存在错误。请在 GitHub 上提出问题。
  • 它不适合您的用例。在 GitHub 上提出一项功能,并提供一个重现问题的示例以及您认为应如何更改解决方案以满足您的需求。

如果您有兴趣,代码在https://github.com/jshiell/checkstyle-idea/blob/master/src/main/java/org/infernus/idea/checkstyle/model/ConfigurationLocation.javaresolveAssociatedFile 方法中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 2010-10-16
    • 2014-07-18
    • 2014-02-18
    相关资源
    最近更新 更多