java - Checkstyle 找不到 suppresss.xml
问题描述
我正在使用 Gradle 5.0 和 Checkstyle 8.15。我有一个带有以下 Checkstyle 配置和抑制文件的 Java 项目:
- 配置/checkstyle/checkstyle.xml
- 配置/checkstyle/suppressions.xml
checkstyle.xml
suppressions.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 以获得完整的见解。
- 在https://help.gradle.org获得更多帮助
此版本中使用了已弃用的 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 吗?
解决方案
如果您在 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/。
推荐阅读
- database - 将文本/数据转换为 x、y 数组?
- bash - 如何在启动时更改 Linux 的默认目录
- swift - 如何在没有 xcode 的情况下删除沙箱
- ruby-on-rails - 类型字符变化的值太长(255)-carrierwave
- java - Java Hibernate LazyInitializationException 仅在仅与 JUnit 一起运行时出现
- r - R 控制台语言设置
- python-sphinx - 狮身人面像警告:“重复的替换定义名称” - 错误在哪里?
- parsing - Lexer 是否应该能够区分“变量”中包含的语法标记和实际的语法标记
- c++ - 我可以在 C++ 上设置用户输入的范围吗?
- javascript - JavaScript,承诺拒绝