cannot initialize module StrictDuplicateCode - 无法初始化类: 'StrictDuplicateCode'
环境:
eclipse4.6、CheckStyle7.3.0、CheckStyle5.5.0的configuration配置xml文件
错误信息:
在eclipse中使用checkstyle插件时,报无法初始化类:cannot initialize module StrictDuplicateCode - 无法初始化类: ‘StrictDuplicateCode’
eclipse错误信息如图:
com.puppycrawl.tools.checkstyle.api.CheckstyleException: cannot initialize module StrictDuplicateCode - 无法初始化类: 'StrictDuplicateCode' ,也无法初始化: com.puppycrawl.tools.checkstyle.checks.annotation.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.blocks.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.coding.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.design.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.header.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.imports.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.indentation.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.javadoc.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.metrics.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.modifier.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.naming.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.regexp.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.sizes.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.whitespace.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.filefilters.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.filters.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.StrictDuplicateCode, StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.annotation.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.blocks.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.coding.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.design.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.header.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.imports.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.indentation.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.javadoc.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.metrics.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.modifier.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.naming.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.regexp.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.sizes.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.whitespace.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.filefilters.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.filters.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.StrictDuplicateCodeCheck。 请检查类名大小写,或阅读帮助手册中短名称配置部分: http://checkstyle.sourceforge.net/config.html#Packages. 同时,请检查Checker的ClassLoader是否配置正确。
at com.puppycrawl.tools.checkstyle.Checker.setupChild(Checker.java:430)
at com.puppycrawl.tools.checkstyle.api.AutomaticBean.configure(AutomaticBean.java:141)
at net.sf.eclipsecs.core.builder.CheckerFactory.createCheckerInternal(CheckerFactory.java:292)
at net.sf.eclipsecs.core.builder.CheckerFactory.createChecker(CheckerFactory.java:128)
at net.sf.eclipsecs.core.builder.Auditor.runAudit(Auditor.java:140)
at net.sf.eclipsecs.core.builder.CheckstyleBuilder.handleBuildSelection(CheckstyleBuilder.java:300)
at net.sf.eclipsecs.core.jobs.RunCheckstyleOnFilesJob.runInWorkspace(RunCheckstyleOnFilesJob.java:116)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:39)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: com.puppycrawl.tools.checkstyle.api.CheckstyleException: 无法初始化类: 'StrictDuplicateCode' ,也无法初始化: com.puppycrawl.tools.checkstyle.checks.annotation.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.blocks.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.coding.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.design.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.header.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.imports.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.indentation.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.javadoc.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.metrics.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.modifier.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.naming.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.regexp.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.sizes.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.whitespace.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.checks.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.filefilters.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.filters.StrictDuplicateCode, com.puppycrawl.tools.checkstyle.StrictDuplicateCode, StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.annotation.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.blocks.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.coding.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.design.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.header.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.imports.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.indentation.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.javadoc.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.metrics.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.modifier.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.naming.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.regexp.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.sizes.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.whitespace.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.checks.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.filefilters.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.filters.StrictDuplicateCodeCheck, com.puppycrawl.tools.checkstyle.StrictDuplicateCodeCheck。 请检查类名大小写,或阅读帮助手册中短名称配置部分: http://checkstyle.sourceforge.net/config.html#Packages. 同时,请检查Checker的ClassLoader是否配置正确。
at com.puppycrawl.tools.checkstyle.PackageObjectFactory.createModule(PackageObjectFactory.java:118)
at com.puppycrawl.tools.checkstyle.Checker.setupChild(Checker.java:420)
... 8 more
问题原因
checkstyle(eclipse-cs)在版本升级过程中,某些检查被删除(如:StrictDuplicateCode, RedundantThrows等)。
解决方法
方法一:更新Checkstyle配置,删除现在不存在的检查。
打开Checkstyle配置文件,删除或注释掉StrictDuplicateCode模块,然后重新导入。
如下:
<!-- Duplicate code - 冗余代码检查 -->
<!-- 冗余代码检查可检测通过复制/粘贴产生的重复代码 -->
<!-- 注释掉下面这段 <module name="StrictDuplicateCode"> <property name="min" value="15" /> </module> -->
方法二:降低eclipse中安装的checkst(eclipse-cs)的版本,使其能适应你的Checkstyle配置。
还没有评论,来说两句吧...