首页 > 解决方案 > Checkstyle 找不到 suppresss.xml

问题描述

我正在使用 Gradle 5.0 和 Checkstyle 8.15。我有一个带有以下 Checkstyle 配置和抑制文件的 Java 项目:

checkstyle.xmlsuppressions.xml像这样的参考:

<module name="SuppressionFilter">
    <property name="file" value="config/checkstyle/suppressions.xml"/>
</module>

如果我对我的源运行 checkstyle ,它会失败:

$ ./gradlew checkstyleMain -xwebpack

  • 配置项目:默认为开发 Spring 配置文件

    任务:checkstyleMain FAILED

FAILURE:构建失败并出现异常。

出了什么问题:任务“:checkstyleMain”执行失败。无法创建根模块:config {/Users/robert/dev/...},类路径 {/Users/robert/dev/...}。

尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。

此版本中使用了已弃用的 Gradle 功能,使其与 Gradle 6.0 不兼容。使用“--warning-mode all”显示各个弃用警告。请参阅 https://docs.gradle.org/5.0/userguide/command_line_interface.html#sec:command_line_warnings

1 秒内构建失败 3 个可操作的任务:1 个已执行,2 个是最新的

如果我删除对 的引用suppressions.xml,则构建完成(如果发现抑制,checkstyle 会发现会被忽略的错误)。

我对文档的理解是,引用文件的根目录config/checkstyle/suppressions.xml是项目根目录。然而,情况似乎并非如此。

我没有正确设置 checkstyle 吗?

标签: javagradlecheckstyle

解决方案


如果您在 project-dir/config/checkstyle/ 中放置 suppresss.xml,请使用以下方式,

<module name="SuppressionFilter">
    <property name="file" value="${config_loc}/suppressions.xml"/>
</module>

最新版本的 checkstyle 自动将 config_loc 变量设置为 project-dir/config/checkstyle/。


推荐阅读