我正在尝试将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>
答案 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路径分隔符。