在 Maven Checkstyle 插件报告中排除类

2022-08-31 23:46:28

我有一个Maven 2项目,我想配置我的Checkstyle报告插件,以便只分析我的一些类。我已经找到了该属性,但是尽管将其作为命令行参数传递(使用),但我无法使其正常工作。我在插件文档页面上找不到任何内容。理想情况下,我希望能够在POM的部分中设置它。maven.checkstyle.excludes-D=maven.checkstyle.excludes=...<configuration>


答案 1

如果像我一样,您来到这里寻找一种从checkstyle中排除生成的源的方法,请执行以下操作:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-checkstyle-plugin</artifactId>
  <version>2.15</version>
  <configuration>
    <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
  </configuration>
</plugin>

默认情况下,checkstyle 插件的 checkstyle:checkstyle 目标使用 ,这显然包括生成的源目录。${project.compileSourceRoots}

如果将其更改为 ,它将仅使用源目录,而不使用任何生成的源目录。${project.build.sourceDirectory}

请注意,虽然已弃用,但替代项 、 似乎不起作用。<sourceDirectory><sourceDirectories>

编辑:在评论中,@Cyrusmith,@Ben和@Olivier Callioux报告说,截至2017年,有效;我无法确认。<sourceDirectories>


答案 2

如果这个问题是关于 Maven 2 的,则排除该属性并采用逗号分隔的 Ant 模式列表。因此,要么在命令行上传递此内容:

-Dexcludes=**/generated/**/*

或者在插件配置中设置它:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-checkstyle-plugin</artifactId>
   <configuration>
       <excludes>**/generated/**/*</excludes>
   </configuration>
</plugin>

另一种选择是使用抑制滤波器

例如,您可以使用 来禁止显示包含 CHECKSTYLE:OFF 的注释和包含 CHECKSTYLE:ON 的注释之间的审核事件(然后只需将这些注释添加到您不想检查的类或代码部分)。SuppressionCommentFilter


推荐