在学习jDepend的时候,看到了这JavaNCSS静态代码分析工具。jDepend检查java包的稳定性、抽象性、包之间的依赖关系,而JavaNCSS则检查java源文件、类、方法等更细粒度的指标。JavaNCSS统计packages信息、classes信息、functions信息。

1.Packages信息

43ae057b5cc56cd241a94f91b8c476db.png

2.Classes信息

282364e8d83f94e0bd4f12aaba6d75b2.png

3.functions信息

a91065a332209b4d8b7f9c57e6be21bc.png

有几个名词解释下:

NCSS:Non Commenting Source Statements,除了注释和空行外的java有效代码行数。

CNN:Cyclomatic Complexity Number (McCabe metric),函数的圈复杂度,就是if、while、for、catch等逻辑控制语句的分支个数。这个跟Eclipse Mertics插件统计的函数圈复杂度指标类似,只不过两者使用的计算规则不同罢了。

JVDC:Javadoc comments,是否编写了符合javadoc规范的注释。0代表无javadoc,1代表有javadoc。

关于JavaNCSS的统计规则,官网上有介绍,有兴趣的可以自己研究下。写点测试代码,用JavaNCSS跑下看结果,对比下就知道了。

下面介绍下,如何在windows下安装使用JavaNCSS工具。我用的是JavaNCSS 32.53。首先从官方下载javancss-32.53.zip安装包。

4913ece2f4c331c74edcc3dd806a6e44.png

由于JavaNCSS是用java编写的工具,所以必需要安装JDK,并配置好JAVA_HOME环境变量。并不需要配置什么CLASSPATH环境变量,javaNCSS会自动将javancss.jar、ccl.jar、jhbasic.jar加入CLASSPATH中。

0d80bfdd5686e76b2d88b94ad219cd91.png

如果遇到上面这个错误,是因为我们JAVA_HOME中路径含有空格。这个看下javancss.bat很容易知道:

%JAVA_HOME%binjava -classpath %CLASSPATH% javancss.Main %1 %2 %3 %4 %5 %6 %7 %8 %9

解决方法也很简单:用双引号即可:"%JAVA_HOME%binjava" -classpath %CLASSPATH% javancss.Main %1 %2 %3 %4 %5 %6 %7 %8 %9

javaNCSS使用也很简单:#统计结果输出到文件

javancss -out "result.txt" D:workspacedemosrc

#统计结果显示到javancss自带的GUI

javancss -gui D:workspacedemosrc

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐