利用JAVANCSS建立代码复杂度度量
上一篇 /
下一篇 2009-02-22 20:39:39
/ 个人分类:集成测试
JAVANCSS是一个广受推荐的的项目代码复杂度度量的评估工具,最近对此工具进行了实际应用,在过程中遇到并解决了不少问题,最终完成了其在ant上的配置和使用。在此记录有关问题与应对。
问题1:执行的时候报错说找不到class :javancss.JavancssAntTask
解决方法: 需要添加如下LIB: ccl.jar;javancss.jar;jhbasic.jar
问题2: 在执行过程中,遇到类似错误:[javancss:report]TokenMgrError in /**/** Lexical error at line 120, column 34. Encountered: "\r" (13), after : "\"Po"Caused by: java.lang.Exception: javancss.TokenMgrError: Lexical error at line 120, column 34. Encountered: "\r" (13), after : "\"Po"
... 23 more
解决方法: 该问题产生的本质原因在于javancss的内部机制,其使用的是javacc的文法解析器,过老的javacc解析器产生的java grammar 不支持 utf-8编码,导致在处理中文注释等时会抛异常。我尝试了所有能够找到的javancss版本,大部分版本都存在这个问题,本来都已经不报希望,准备尝试研究javacc找寻支持utf-8编码的改写方法。但就在今天,我最后一次查找时,验证了javancss的29.50有效解决了此问题。
问题3: 我使用的是ant+javancss,如何生成类似于标准ant的报告
javancss生成的xml,需要用xslt 和定制的 stylesheet来解决。
经过一系列问题的解决,终于可以得到我期望的代码度量结果了。如下将我build.xml配置方法贴出:
<taskdef name="javancss" classname="javancss.JavancssAntTask" classpathref="ncssclasspath"/>
<target name="javaNCSS">
<mkdir dir="${report.dir}" />
<javancss srcdir="D:\share\src" generateReport="true"
outputfile="${report.dir}\javancss-metric.xml"
format="xml"/>
<xslt
in="${report.dir}\javancss-metric.xml"
ut="${report.dir}\javancss-metric.html"
style="${report-xlst.dir}\javancss2methodhtml.xsl"
classpathref="ncssclasspath"
/>
</target>
收藏
举报
TAG: