CheckStyle IDEA 使用抑制文件进行自定义检查

标签 checkstyle intellij-plugin

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

  • 在自定义检查库中有抑制文件,然后在自定义检查样式 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>
    
  • 不要将 SuppressionFilter 部分放在自定义 checkstyle xml 中。为要检查的 repo 设置相同的 pom.xml。抑制文件可以放置在要检查的存储库的本地。

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

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

    谢谢!

    最佳答案

    插件使用的逻辑是

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

  • 如果没有,它就放弃了。所以有两种可能:
  • 逻辑有问题。请在 GitHub 上提出问题。
  • 它不适合您的用例。在 GitHub 上提出一个功能特性,用一个例子来重现问题以及你认为应该如何改变分辨率以满足你的需求。

  • 代码在 resolveAssociatedFile https://github.com/jshiell/checkstyle-idea/blob/master/src/main/java/org/infernus/idea/checkstyle/model/ConfigurationLocation.java的方法如果你有兴趣。

    关于CheckStyle IDEA 使用抑制文件进行自定义检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31151346/

    相关文章:

    spring-boot - 分析java代码时checkstyle错误

    android - 自定义数据类型渲染器部署

    intellij-idea - intellij 插件开发显示带有多个文本框的输入对话框

    java - 在 IntelliJ 调试中保存对象的状态?

    maven-2 - Maven 中 Main 和 Test 的不同 Checkstyle 规则

    Java Hello World 传递 CheckStyle

    java - 如何在 IntelliJ 插件上使用代码完成?

    java - 在intellij ide中查找与某个类相关的信息

    java - 检查一个类是否间接继承了另一种类型的类

    java - 从 CheckStyle 生成编码指南