任何人都可以确认 Checkstyle 应该与类路径上的类的编译版本一起运行吗?
我们目前仅在 Java 文件上运行它,但最近我们在“RedundantThrows”和“JavadocMethod”检查方面遇到了一些错误。错误是“无法找到 X 的类信息”。网上搜索发现解决办法是在运行Checkstyle之前将编译好的类添加到类路径中。
我们的问题是,我们的 Checkstyle 审核当前在只能访问源代码的服务器上运行,我们只是想确认 Checkstyle 实际上需要访问已编译的类。在官方网站上似乎找不到“确凿证据”。
最佳答案
Checkstyle 仅对源文件非常满意。不需要类的编译版本。
但是,最好有可用的已编译类,因为一些单独的检查确实会使用已编译的 .class 文件。这些检查提到他们的文档中需要二进制文件。一个是 JavadocMethod 检查你提到的。这个在没有二进制文件的情况下仍然可以运行,但是您可能会在日志中看到一些刺激。
我能想到的需要编译类的另一个检查是 RedundantThrows 。仅仅依靠来源,这个可能不会有多大作用。你必须尝试一下。
在这两种情况下,您都可以通过将 suppressLoadErrors
属性设置为 true
来抑制加载错误。如果没有二进制文件,检查将无法收集继承信息。因此,检查的某些功能将受到限制,但它会正常工作或至少不会打扰您。
关于java - Checkstyle 是否需要编译类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24493125/