maven-checkstyle-plugin:无法解析suppressions.xml - 无效的格式或检查格式

时间:2013-06-12 14:57:05

标签: eclipse maven checkstyle

我正在尝试将suppressions.xml添加到我的eclipse java项目中。我的checkstyle-config.xml位于src / main / resources中,suppressions.xml位于同一目录中。我把它添加到配置文件中:

<module name="SuppressionFilter">
    <property name="file" value="src/main/resources/suppressions.xml"/>
</module>

在pom.xml中,我有

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>2.10</version>
    <configuration>
        <includeTestSourceDirectory>true</includeTestSourceDirectory>
        <failsOnError>true</failsOnError>
        <propertiesLocation>src/main/resources/checkstyle.build.properties</propertiesLocation>
        <configLocation>src/main/resources/checkstyle-config.xml</configLocation>                    
        <suppressionsLocation>src/main/resources/suppressions.xml</suppressionsLocation>
    </configuration>
</plugin>

当我从命令行或通过eclipse m2e插件运行mvn verify时,我收到此错误:

  

在checkstyle配置期间失败:无法初始化模块SuppressionFilter - 无法将模块SuppressionFilter中的属性'file'设置为'src / main / resources / suppressions.xml':无法解析src / main / resources / suppressions.xml - 无效文件或检查格式:InvocationTargetException - &gt; [帮助1]

我甚至尝试将checkstyle-config.xml中的路径更改为${config_log}${basedir}但到目前为止没有运气。

任何有关这方面的帮助都会很明显。

更新:我觉得问题可能与文件位置无关,而是与suppressions.xml文件本身有关。这是我的suppressions.xml,

<?xml version="1.0"?>

<!DOCTYPE suppressions PUBLIC
     "-//Puppy Crawl//DTD Suppressions 1.1//EN"
     "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">

<suppressions>
    <suppress checks="JavadocPackage" files="src/test/java/**"/>
</suppressions>

1 个答案:

答案 0 :(得分:0)

files属性是一个正则表达式,它根据所检查文件的绝对文件路径进行评估。因此**表达式无效。请改用这样的东西:

<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
    "-//Puppy Crawl//DTD Suppressions 1.1//EN"
    "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">

<suppressions>
    <suppress checks="JavadocPackage" files="[/\\]src[/\\]test[/\\]java[/\\].*"/>
</suppressions>

使用[/\\]代替/也支持UNIX和Windows路径分隔符。