使用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

 

posted @ 2019-01-24 10:56  ttssrs  阅读(4370)  评论(0编辑  收藏  举报