使用Simian进行重复代码检测
一、概述
Simian是一个可跨平台使用的重复代码检测工具,有商用和免费两种使用渠道,官方网址为:http://www.harukizaemon.com/simian/installation.html,能够检测代码片段中除了空格、注释及换行外的内容是否完全一致,且支持的语言十分广泛,包括:
- Java
- C#
- C++
- C
- Objective-C
- JavaScript (ECMAScript)
- COBOL, ABAP
- Ruby
- Lisp
- SQL
- Visual Basic
- Groovy
- Swift
二、安装与使用
直接下载文件http://www.harukizaemon.com/simian/get_it_now.html,推荐下载.MD5版本,保证下载的文件是完整的。下载后解压,无需安装即可使用。
Windows平台使用bin目录下的exe,linux平台可执行bin目录下的simian*.jar。
三、示例
c:\>simian.exe [options] files
一些参数:
- 检查包括子目录下的所有的c#文件:
"-recurse=*.cs"
- 检查当前目录下的所有c#文件 ,并且只检查代码3行以上重复的代码
-threshold=3 "*.cs"
- 在当前目录的所有子文件夹下检测所有c和h后缀的文件:
**/*.c **/*.h
- 检测两个不同目录下的所有java文件:
"/csharp-source/*.cs" "/java-source/*.java"
- 检测所有子目录下的所有java文件,包括test类:
-includes=**/*.java -excludes=**/*Test.java
- 检测当前目录下的所有java文件,且忽略其中的数字的不同:
-ignoreNumbers "*.java"
- 检测所有java文件,并以xml格式显示结果:
-formatter=xml "*.rb"
- 从文件中读取配置参数(文件中一行只能包括一个simian有效的参数):
-config=simian.config