在 Maven Checkstyle 插件报告中排除类

新手上路,请多包涵

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

原文由 Andrew Harmel-Law 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

如果这个问题是关于 Maven 2 的,那么属性是 excludes 并且采用逗号分隔的 Ant 模式列表。所以要么在命令行上传递它:

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

或者在插件配置中设置:

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

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

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

原文由 Pascal Thivent 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果你像我一样来到这里寻找一种方法来从 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> 有效;我无法确认。

原文由 drew 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题