我正在使用 Gradle 5.5.1
并想添加 checkstyle
插件。
我添加了插件
plugins {
id 'checkstyle'
}
并从 sun_checks.xml 获取 sun_checks.xml
。
但是当我尝试执行 gradlew clean check 时,它失败并出现由以下原因引起的异常:
Caused by: com.puppycrawl.tools.checkstyle.api.CheckstyleException: Unable to instantiate 'InvalidJavadocPosition' class, it is also not possible to instantiate it as
.InvalidJavadocPosition, InvalidJavadocPositionCheck, .InvalidJavadocPositionCheck. Please recheck that class name is specified as canonical name or read how to config
ure short name usage https://checkstyle.org/config.html#Packages. Please also recheck that provided ClassLoader to Checker is configured correctly.
at com.puppycrawl.tools.checkstyle.PackageObjectFactory.createModule(PackageObjectFactory.java:210)
at com.puppycrawl.tools.checkstyle.TreeWalker.setupChild(TreeWalker.java:127)
... 110 more
据我了解,这是由于gradle使用8.17
的默认checkstyle版本不支持的规则引起的。
但是当我想像这样更改工具版本时(更新到更高的位置)
checkstyle { toolVersion '8.21' }
它没有解决问题。有什么问题吗?
最佳答案
您提供链接的 sun_checks.xml 文件是 GitHub 中的最新版本的代码。如果您点击该链接,您将看到 InvalidJavadocPosition 检查模块已于 22 天前添加:
“rnveach 问题 #6649:22 天前添加 InvalidJavadocPositionCheck 2b7b0c2”
22 天前,InvalidJavadocPositionCheck 类也被添加到 GitHub 的 checkstyle 代码库中,预定版本为 8.23:
* @since 8.23
*/
@StatelessCheck
public class InvalidJavadocPositionCheck extends AbstractCheck {
因此您使用的 sun_checks.xml 文件与尚未发布的 8.23 兼容。
简单的解决方法是删除该模块,直到 8.23 发布:
<!-- <module name="InvalidJavadocPosition"/> -->
关于gradle - 无法实例化 'InvalidJavadocPosition'类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57110133/