7

我在 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>

我的 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>

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

亲切的问候

4

1 回答 1

4

CheckStyle : SuppressionFilter告诉我们

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

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

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

如果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>

checkstyle : checkstyle告诉我们

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

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

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

我希望这可能会有所帮助。

于 2013-04-05T07:19:10.147 回答