代码质量小工具repoScan——如何知道代码圈复杂度趋势

一、我的运行环境如下

* MacOS
* Java 1.8
* python2.7
* Git 2.15.1

二、在这里下载 repoScan-1.0.jar 。

https://download.csdn.net/download/tony1130/12239750

三、在自己电脑上安装:

1. 安装 git 

2. 安装Python。

3. 用下面的命令安装 lizard(它是扫描代码内部质量的工具,如圈复杂度,函数长度,代码重复读等等,https://github.com/terryyin/lizard)

pip install lizard


四、开始收集代码仓库的质量数据

1、Clone 一个git代码仓库到本地,例如 谷歌的Guava

git clone https://github.com/google/guava.git guava

2.进入到代码仓库的根目录guava

# 项目说明
按统计Git仓库中的代码圈复杂度
(去除所有的 */test/* 目录)

# 用到的工具

* Git
* [lizard](https://github.com/terryyin/lizard)

## 克隆和build
* 克隆本项目
* 在命令行下执行 `mvn test`,或者导入到 IDE,运行测试,看到测试运行通过
* 在命令行下执行 `mvn -Dmaven.test.skip=true clean package` ,可以在`${basedir}/target/`生成jar文件,名为`repo-1.0.jar`

## 已测试的运行环境

* MacOS
* Java 1.8
* python2.7
* Git 2.15.1

## 运行前的准备
* 安装Git
* 在MacOS上安装lizard
```
pip install lizard
```

## 运行程序

以下面的格式,运行下面命令
```java -jar [your_jar_path]/repoScan-1.0.jar -R [repo_path] -C [CC_threshold] -I [days_interval] -V [maxVolume] -F [logfile.txt]```

* `[repo_path]`       扫描的仓库目录,默认为 `.`,即当前目录
* `[CC_threshold]`    圈复杂度的阈值,默认为`5`。1,99999,java,nolog,outputDir
* `[days_interval]`   统计所需的天数间隔,默认为`1`, 即:每天一个commit样本。如果为`30`,则每30天取一个commit样本。
* `[maxVolume]`       最多统计多少个样本,目前还没有实现该功能。
* `[logfile.txt]`     保存git log的文件(使用相对repo的路径)。默认是 `nolog`, 即:程序会自动生成获取log信息,不需要事先手工生成日志文件。

例如,下面的命令表示对当前目录的Git仓库进行扫描,圈复杂度阈值为10, 样本周期是60天,使用默认语言,即:java。
`java -jar ../codemetrics/target/demo-1.0-SNAPSHOT.jar -R . -C 10 -I 60`

输出结果会保存在文件中,默认在 outputDir/codebase_summary.csv。

## 已知问题

* 如果git历史log较多,程序会阻塞。此时,应使用准备环节所述的命令事先生成logfile。生成logfile的命令如下所示:
```git log --pretty=%ci,%h --first-parent --no-merges  > logfile.txt```
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值