【问题标题】:Exclude path from checkstyle-plugin in eclipse从 Eclipse 中的 checkstyle-plugin 中排除路径
【发布时间】:2019-06-07 23:38:11
【问题描述】:

Eclipse 2018-12 Eclipse Checkstyle 插件 8.12.0 Java jdk11.0.1

在我的 Eclipse 项目中,我使用 Google 的自动值。文件在 /projectRoot/.apt_generated/tld/domain/some/package/AutoValue_AnyName.java 中自动生成。我想从 checkstyle 检查中排除这些文件,所以我添加了

<module name="BeforeExecutionExclusionFileFilter">
    <property name="fileNamePattern" value=".*/.apt_generated/.*/AutoValue_.*"/>
</module>

在我的 checkstyle.xml 中。 IMO,应该匹配自动生成的文件并将它们从扫描中排除。唉,Eclipse 的意见不同。文件被扫描了,谷歌不遵循我的编码风格,所以我得到了很多“问题”。如何从 checkstyle 中排除这些文件?

【问题讨论】:

  • 仔细检查您的文件夹路径(/ 与 \)和 .apt 部分(我假设您的意思是 \.apt。如果这不起作用,请尝试使模式排除所有内容并使用反词到您的特定文件/文件夹。
  • 我试过 /、\ 和 \\(因为 \ 是正则表达式中的转义字符),没有任何效果。

标签: eclipse-plugin checkstyle


【解决方案1】:

您可以通过将其添加到项目的 .checkstyle 文件中来排除检查:

<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
  ...
  <filter name="DerivedFiles" enabled="true" />
</fileset-config>

这假设 AutoValue/APT 将生成的文件标记为派生。

或者,如果您生成的类型仅限于特定文件夹/包:

<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
  ...
  <filter name="FilesFromPackage" enabled="true">
    <filter-data value="derived" />
  </filter>
</fileset-config>

或者你可以试试:

<module name="SuppressionFilter">
    <property name="file" value="${config_loc}/.checkstyleSuppress.xml" />
</module>

使用适当的抑制 xml 文件。它非常通用,但第一次设置需要一些工作。

【讨论】:

  • 由于我只是没有时间测试所有这些命题,我决定从外部选择文件。我从 Eclipse 中的 checkstyle 中排除生成的文件,我只是在 gradle 中选择 src/java/main。
猜你喜欢
  • 1970-01-01
  • 2011-08-23
  • 1970-01-01
  • 1970-01-01
  • 2012-06-02
  • 1970-01-01
  • 2018-07-18
  • 2011-03-16
相关资源
最近更新 更多