排除Maven Checkstyle插件报告中的类

问题描述 投票:39回答:4

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

java maven-2 checkstyle
4个回答
44
投票

如果这个问题是关于Maven 2的,那么这个属性是 "Checkstyle.excludes"。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 (然后将这些注释添加到你不想检查的类或代码部分)。


56
投票

如果像我一样,你到这里来是为了寻找一种排除掉 产生的 源的检查样式,这样做。

<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>,似乎并不奏效。


22
投票

此外,如果你想排除 多重 独立的文件夹,你可以添加多个独立的路径,像这样用逗号隔开。

<excludes>org/log4j/*,com/acme/**/*,com/companyb/*</excludes>

0
投票

上面的答案对我来说没有用,因为我是在maven中运行代码生成的,maven也将targetgenerated添加为source dir.下面的解决方案可行:你必须使用显式的checkstyle-suppressions.xml配置文件,并从你的配置中激活它:。

下面的解决方案可行:你必须使用一个显式的checkstyle-suppressions.xml配置文件,并从你的配置中激活它。

<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>3.1.1</version>
    <configuration>
      <configLocation>checkstyle.xml</configLocation>
      <suppressionsLocation>checkstyle-suppressions.xml</suppressionsLocation>
   [...]

排除目标文件夹的suppressions文件是这样的。

<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
  "-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN"
  "https://checkstyle.org/dtds/suppressions_1_2.dtd">

<suppressions>
  <suppress files="[/\\]target[/\\]" checks=".*" />
</suppressions>
© www.soinside.com 2019 - 2024. All rights reserved.