【问题标题】:CheckStyle checks not been ignoredCheckStyle 检查未被忽略
【发布时间】:2013-03-12 12:14:57
【问题描述】:

我在 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 cmets 或错误。但这不起作用。我怎样才能做到这一点?

亲切的问候

【问题讨论】:

  • 您在suppress 节点中的files 属性缺少"
  • 这和安卓有关吗?如果没有,可以去掉标签吗?

标签: java maven checkstyle


【解决方案1】:

CheckStyle:SuppressionFilter 告诉我们

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

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

由于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 expressioncom.test.My.java时,结果是ma​​tches(): yeslookingAt():是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 文件的位置。 此参数被解析为资源、URL 和文件。如果成功解决,则将抑制 XML 的内容复制到 ${project.build.directory}/checkstyle-supressions.xml 文件中,然后再传递给 Checkstyle 进行加载。

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

更多信息请参考Maven Checkstyle Plugin: Using a Suppressions Filter

我希望这会有所帮助。

【讨论】:

  • 我为提供 Maven Checkstyle 插件配置进行了编辑。
猜你喜欢
  • 1970-01-01
  • 2012-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-04
  • 1970-01-01
相关资源
最近更新 更多