【问题标题】:maven-checkstyle-plugin: Unable to parse suppressions.xml - invalid formats or checks formatmaven-checkstyle-plugin:无法解析 suppresss.xml - 无效格式或检查格式
【发布时间】: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


【解决方案1】:

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 路径分隔符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 2018-12-23
    相关资源
    最近更新 更多