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

问题描述 投票:0回答:1

在Linux / MacOS上,Checkstyle插件按预期方式应用了抑制过滤器,但是在Windows上,似乎没有应用该过滤器,并且构建失败,并带有了要在pressions.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>

这是整个uppressions.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>
java windows maven intellij-idea checkstyle
1个回答
0
投票

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

<suppress checks="AbbreviationAsWordInName" files="[/\\]foo[/\\]bar[/\\].*IT.java"/>
© www.soinside.com 2019 - 2024. All rights reserved.