我有一些自己的扩展检查。我已经将它们导出为插件,在Eclipse中,它们显示警告/错误。因此,扩展检查运行良好。
现在,我想以HTML格式生成一个违规报告。
我已经检查了这个,如果rule.xml文件中没有包含扩展检查,这就可以正常工作。但在扩展检查的情况下,ant构建会给出错误。
错误为:
BUILD FAILED
D:Java_WorkJUnit_CheckStylebuildCheckStyle.xml:12: Unable to create a Checker: cannot initialize module TreeWalker - Unable to instantiate InterfaceModifier
InterfaceModifier是我的扩展检查,它在eclipse中运行良好。
在build.xml中,在哪里提供extendedCheck.jar以便获得所需的结果?
我找到了以下解决方案,它运行良好。
- 提取checkstyle-x.x-all.jar
- 复制提取目录中的扩展类
- 将扩展检查的元数据、消息和属性文件复制到同一目录中
- 如果任何文件已经存在,则编辑该文件并添加扩展检查中的内容
- 创建一个包含所有这些的新.jar文件
- 在antbuild.xml
<taskdef>
中,将此.jar设置为classpath
就像,在完成第二步之后,我发现checkstyle_packages.xml已经存在,所以我编辑了它,并在适当的位置添加了扩展包中的内容。
上一版本:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE checkstyle-packages PUBLIC
"-//Puppy Crawl//DTD Package Names 1.0//EN"
"http://www.puppycrawl.com/dtds/packages_1_0.dtd">
<checkstyle-packages>
<package name="com.puppycrawl.tools.checkstyle">
<package name="checks">
<package name="annotation"/>
<package name="blocks"/>
<package name="coding"/>
<package name="design"/>
<package name="duplicates"/>
<package name="header"/>
<package name="imports"/>
<package name="indentation"/>
<package name="javadoc"/>
<package name="metrics"/>
<package name="modifier"/>
<package name="naming"/>
<package name="regexp"/>
<package name="sizes"/>
<package name="whitespace"/>
</package>
<package name="filters"/>
</package>
</checkstyle-packages>
更改的版本:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE checkstyle-packages PUBLIC
"-//Puppy Crawl//DTD Package Names 1.0//EN"
"http://www.puppycrawl.com/dtds/packages_1_0.dtd">
<checkstyle-packages>
<package name="com.puppycrawl.tools.checkstyle">
<package name="checks">
<package name="annotation"/>
<package name="blocks"/>
<package name="coding"/>
<package name="design"/>
<package name="duplicates"/>
<package name="header"/>
<package name="imports"/>
<package name="indentation"/>
<package name="javadoc"/>
<package name="metrics"/>
<package name="modifier"/>
<package name="naming"/>
<package name="regexp"/>
<package name="sizes"/>
<package name="whitespace"/>
</package>
<package name="filters"/>
</package>
<!-- Added this lines -->
<package name="myCheck">
<package name="checks"/>
</package>
<!-- -->
</checkstyle-packages>
现在构建文件正在成功运行,在报告中我也遇到了违反扩展检查的情况。