生成Checkstyle报告(带延长检查)

时间:2013-08-30 09:10:31

标签: java html xml ant checkstyle

我有一些自己的扩展检查。我已将它们作为插件导出,在Eclipse中,它们显示警告/错误。因此扩展的检查工作正常。

现在,我想以 HTML格式生成违规报告。

我有checked this,如果 rule.xml 文件中没有包含扩展检查,这样可以正常工作。但是在扩展检查的情况下,ant构建会给出错误。

错误是:

BUILD FAILED
D:\Java_Work\JUnit_CheckStyle\buildCheckStyle.xml:12: Unable to create a Checker: cannot initialize module TreeWalker - Unable to instantiate InterfaceModifier

InterfaceModifier 是我的扩展检查,它在eclipse中工作正常。

在build.xml中,在哪里提供 extendedCheck.jar 以便我获得所需的结果?

1 个答案:

答案 0 :(得分:0)

我找到了以下解决方案,工作正常。

  1. 提取 checkstyle-x.x-all.jar
  2. 复制解压缩目录中的扩展类
  3. 将扩展检查的元数据,消息和属性文件复制到同一目录中。
  4. 如果存在任何文件,则编辑该文件并添加扩展检查中的内容。
  5. 创建一个包含所有这些内容的新.jar文件。
  6. 在ant build.xml <taskdef> 中,将此 .jar设置为classpath
  7. 比如,在完成第二步之后,我发现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>
    

    现在构建文件已成功运行,并且在报告中我也违反了扩展检查。