CodeLineCounter 2.2 note.
1 一句话介绍
源代码统计工具,支持基于Spring的配置以及提供了一些扩展点使得用户可以方便的扩展。
同时可以生成各种各样的报表。
2 如何使用
保证path中有java命令。
修改itemConfig.xml,重新配置dirConfigItemCollection里面的DirConfigItem,只有itemId和baseDir是必填的。
运行start.bat。
3 系统设计及扩展
系统按照以下阶段执行。
阶段1 筛选需要统计的文件 阶段2 统计文件的行数 阶段3 生成各式报告
接收文件用
public interface CodeFileFilter {
public boolean filterFile(File file);
}
来判断。系统提供了一些Filter,用户也可以提供新的实现。如果用户没有配置Filter,则使用默认的Filter。
PostfixIncludeFilter: 默认的Filter,现在可以处理后缀名为bat,c,cs,java,sql,xml的文件。
AndFilter: 多个Filter的逻辑与Filter。
BypassFilter:处理所有文件的Filter。
DirDenyFilter:拒绝目录Filter,拒绝指定目录。
DirStringDenyFilter:拒绝路径包含指定字符串的目录。
FileModifyTimeFilter:最后修改时间Filter,只接受指定天数内修改过的File。
NotFilter: 一个Filter的反向Filter。
OrFilter: 多个Filter的逻辑或Filter。
统计行数用
public interface CodeFileParser {
public ResultItem parse(File file);
}
定义。ResultItem中包含文件名和行数,空行数,注释行数。系统提供了一些parser,用户也可以提供新的实现。
如果用户没有配置Parser,则使用默认的Parser。
PostfixParser: 默认的parser,根据文件后缀名的不同选择不同的Parser。现在可以处理后缀名为bat,c,cs,java,sql,xml的文件。
BatParser:统计bat文件。
CParser:统计c文件。
CSharpParser:统计c#文件。
JavaParser:统计java文件。
SqlParser:统计sql文件。
TextParser:统计纯文本文件。
XmlParser:统计xml文件。
一次检查结果可以使用多种形式报告,报告用
public interface Reporter {
public void report(DirConfigItem dirConfigItem, Set<ResultItem> resultSet);
}
定义。报告可以是任何形式,系统提供了一些Reporter,用户也可以提供新的实现。
如果用户没有配置Reporter,则使用默认的Reporters。默认用PostfixHtmlReporter和PackageHtmlReporter。
PackageHtmlReporter:按照层级统计,可以配置层级的深度,默认值为2,输出html。
PostfixHtmlReporter:基于后缀的统计,输出html。
PostfixConsoleReporter: 基于后缀的统计,在控制台输出。
SimpleHtmlReporter:所有文件的统计,输出html。
SimpleConsoleReporter: 所有文件的统计,在控制台输出。
4 配置
logconfig.xml 日志配置文件。
itemConfig.xml 检查项配置文件。
在item.xml里面配置Filter,Parser,Reporter。如果不配置则使用默认配置。
DirConfigItem代表一个检查项。它的配置如下:
itemId:生成html的文件名。
baseDir:检查的根目录。
一个filter来filter要检查的文件,如果不配置使用默认配置。
一个Parser来分析文件,如果不配置使用默认配置。
一个Reporter列表来报告检查结果,如果不配置使用默认配置。
DirConfigItemCollection可以包含多个DirConfigItem。
5 如何扩展
用户可以自定义CodeFileFilter,CodeFileParser ,Reporter 来扩展系统的功能。通过修改itemConfig.xml可以简单的使用新定义的class。