繁体   English   中英

Maven:在 Windows Checkstyle 插件上不应用抑制过滤器

[英]Maven: On Windows Checkstyle plug-in does not apply suppression filter

在 Linux/MacOS 上,Checkstyle 插件按预期应用抑制过滤器,但在 Windows 上,似乎没有应用过滤器,并且构建失败,并出现要在 suppresss.xml 文件中抑制的确切警告。

可能是什么问题呢?

来自 pom.xml 的片段:

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>3.0.0</version>
        <executions>
          <execution>
            <phase>process-sources</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
            <configLocation>google_checks.xml</configLocation>
             <suppressionsLocation>foo/bar/checkstyle/suppressions.xml</suppressionsLocation>
             <consoleOutput>true</consoleOutput>
            <failsOnError>true</failsOnError>
            <failOnViolation>true</failOnViolation>
            <violationSeverity>warning</violationSeverity>
            <includeTestSourceDirectory>true</includeTestSourceDirectory>
        </configuration>
      </plugin>

这是整个抑制。xml:

<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN"
    "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<suppressions>
    <suppress checks="NonEmptyAtclauseDescription" files=".*"/>
    <suppress checks="AbbreviationAsWordInName" files="/foo/bar/.*IT.java"/>
    <suppress checks="JavadocMethod" files="/foo/bar/.*"/>
</suppressions>

基于 Unix 的系统(Linux/MacOS),使用正斜杠“/”作为路径分隔符。 但是 Windows 为此使用反斜杠“\”。 这就是为什么正则表达式不匹配文件的路径并且没有应用任何抑制。 路径 Regex 使其在 Linux/MacOS 和 Windows 上工作的一种方法是用“[/\\]”替换斜杠并接受两个斜杠作为路径分隔符。 例子:

<suppress checks="AbbreviationAsWordInName" files="[/\\]foo[/\\]bar[/\\].*IT.java"/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM