在
gradle clean build
处运行 Task :checkstyleMain
时,出现以下错误。当我从 checkstyle
文件中删除 build.gradle
插件及其配置时,它能够成功构建。我尝试将 commons-collections:3.2.2
和 commons-beanutils:1.9.4
添加到我的 gradle 文件作为依赖项,但错误仍然存在。
java.lang.NoClassDefFoundError: org/apache/commons/collections/FastHashMap
at org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDescriptor(PropertyUtilsBean.java:963)
at org.apache.commons.beanutils.BeanUtilsBean.copyProperty(BeanUtilsBean.java:391)
at com.puppycrawl.tools.checkstyle.api.AutomaticBean.tryCopyProperty(AutomaticBean.java:217)
at com.puppycrawl.tools.checkstyle.api.AutomaticBean.contextualize(AutomaticBean.java:249)
at com.puppycrawl.tools.checkstyle.Checker.setupChild(Checker.java:455)
at com.puppycrawl.tools.checkstyle.api.AutomaticBean.configure(AutomaticBean.java:186)
这些是 checkstyle 在我的项目中使用的依赖项(我运行了
gradle dependencies
):
com.puppycrawl.tools:checkstyle:10.0
+---info.picocli
+---org.antlr
+---commons-beanutils
+---com.google.guava
+---org.reflections
\---net.sf.saxon
这是我的 build.gradle 文件的一小段:
plugins {
id 'checkstyle'
}
group = 'com.example.project'
version = '0.1'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
...
}
dependencies {
...
}
checkstyle {
configFile file("checkstyle.yml")
toolVersion '10.0'
maxErrors 0
maxWarnings 0
}
当依赖项“commons-beanutils”无法拉取其依赖项“commons-collections”时,就会发生这种情况。 因此,如果您没有排除对 commons-collections 的依赖,请仔细检查您的 build.gradle。 你的依赖树:
+---commons-beanutils
它应该是:
+--- commons-beanutils:commons-beanutils:<version>
| | \--- commons-collections:commons-collections:<version>
将其添加到我的grade.build文件中对我有用:
dependencies {
checkstyle "com.puppycrawl.tools:checkstyle:10.18.1"
checkstyle "commons-collections:commons-collections:3.2.2"
}