CheckStyle检查未被忽略

use*_*789 6 java checkstyle maven

我在我的pom.xml中设置了checkstyle检查,如下所示

<reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>2.10</version>
                <configuration>
                    <suppressionsLocation>
                        checkstyle-suppressions.xml
                    </suppressionsLocation>
                    <suppressionsFileExpression>
                        checkstyle-suppressions.xml
                    </suppressionsFileExpression>
                </configuration>
            </plugin>
        </plugins>
    </reporting>
Run Code Online (Sandbox Code Playgroud)

我的checkstyle-supressions.xml文件包含以下内容

<?xml version="1.0"?>

<!DOCTYPE suppressions PUBLIC
     "-//Puppy Crawl//DTD Suppressions 1.0//EN"
     "http://www.puppycrawl.com/dtds/suppressions_1_0.dtd">

<suppressions>
  <suppress checks="JavadocStyleCheck"
             files="**/*.java"
             />
  <suppress checks="JavadocTypeCheck"
             files="**/*.java"
             />
  <suppress checks="JavadocVariableCheck"
             files="**/*.java"
             />
  <suppress checks="FileTabCharacterCheck"
             files="**/*.java"
             />
</suppressions>
Run Code Online (Sandbox Code Playgroud)

我希望当我运行mvn网站时,检查样式​​插件不报告任何JavaDoc注释或与制表符相关的错误.但这不起作用.我怎样才能实现这一目标?

亲切的问候

Cha*_*suk 4

CheckStyle :SuppressionFilter告诉我们

抑制 XML 文档包含一组suppress元素,其中每个suppress元素可以具有以下属性:

  1. files -与审计事件关联的文件名相匹配的正则表达式。这是强制性的。
  2. 检查-与审计事件关联的检查名称相匹配的正则表达式。如果指定了 id,则为可选。
  3. id - 与审计事件关联的检查 ID 相匹配的字符串。如果指定了检查,则可选。
  4. lines - 以逗号分隔的值列表,其中每个值都是一个整数或由整数-整数表示的整数范围。它是可选的。
  5. columns - 以逗号分隔的值列表,其中每个值都是一个整数或由整数-整数表示的整数范围。它是可选的。

由于files是 a ,因此您可以在Java 正则表达式测试页regular expression上在线测试配置。

如果files**/*.java,当应用时,regular expression结果com.test.My.java是失败:Dangling meta character '*' near index 0 **/*.java ^

然后解决方案是设置filesas .*\.java,应用时regular expression结果com.test.My.javamatches(): yeslookingAt(): yesfind(): yesgroup(0): com.test.My.java

插件配置应如下:-

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>2.10</version>
    <configuration>
      <suppressionsLocation>checkstyle-suppressions.xml</suppressionsLocation>
      <suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

checkstyle :checkstyle告诉我们

  1. 抑制位置:指定要使用的抑制 XML 文件的位置。 此参数解析为资源、URL,然后是文件。如果成功解析,抑制 XML 的内容将被复制到${project.build.directory}/checkstyle-supressions.xml文件中,然后传递到 Checkstyle 进行加载。

  2. 抑制文件表达式要在抑制文件的属性中使用的键。默认值为:checkstyle.suppressions.file

请参阅Maven Checkstyle 插件:使用抑制过滤器以获取更多信息。

我希望这会有所帮助。