【发布时间】:2013-06-12 14:57:04
【问题描述】:
我正在尝试向我的 eclipse java 项目中添加一个 suppresss.xml。我的 checkstyle-config.xml 位于 src/main/resources 中,而 suppresss.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 中的属性“文件”设置为“src/main/resources/suppressions.xml”:无法解析 src/main/resources/suppressions.xml - 无效文件或检查格式:InvocationTargetException -> [Help 1]
我什至尝试将 checkstyle-config.xml 中的路径更改为 ${config_log} 或 ${basedir},但到目前为止还没有成功。
对此的任何帮助都将是可观的。
更新:我觉得问题可能不在于文件位置,而在于 suppresss.xml 文件本身。这是我的 suppresss.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>
【问题讨论】:
-
文档说如果你愿意,可以在类路径中指定文件。单独尝试
supressions.xml,因为 src/main/resources 的文件最终位于类路径根目录中。这就是配置文件中的条目。我不确定 pom 中的条目是否相同。我不知道你为什么在这两个地方都需要它。 -
我总是将我的 checkstyle.xml 配置文件放在与 pom.xml 文件相同的文件夹中。也许如果你把它和suppresses.xml文件都放在那里,只是把它们的名字放在pom中没有路径,它可能会起作用。
-
试过了,没用。我将它从 pom.xml 中删除并在 checkstyle-config.xml 中将其更改为
suppressions.xml但没有用。在这种情况下出现无法找到文件错误。 -
我从来没有用过。所以我在这里帮不上忙。您可能应该通过编辑将该 XML 放入问题中。
-
已解决。问题出在 suppresss.xml 本身。从文件属性值中删除了“/**”。
标签: eclipse maven checkstyle