CheckStyle检查未被忽略

时间:2013-03-22 15:11:49

标签: java maven checkstyle

我在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注释或与制表符相关的错误。但这不起作用。我怎样才能做到这一点?

亲切的问候

1 个答案:

答案 0 :(得分:3)

CheckStyle:SuppressionFilter告诉我们

  

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

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

由于filesregular expression,您可以在Regular Expression Test Page for Java在线测试配置。

如果files**/*.java,则将regular expressioncom.test.My.java一起应用后,结果将失败为Dangling meta character '*' near index 0 **/*.java ^

然后解决方案files设置为.*\.java,将regular expression应用于com.test.My.java时,结果为匹配( ):是 lookingAt():是 find():是 group(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. suppressionsLocation :指定要使用的抑制XML文件的位置。 此参数已解析为资源,网址,然后是文件。如果成功解析,则抑制XML的内容将被复制到${project.build.directory}/checkstyle-supressions.xml文件中,然后传递给Checkstyle进行加载。

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

  3. 有关详细信息,请参阅Maven Checkstyle Plugin: Using a Suppressions Filter

    我希望这可能有所帮助。