JCCI:Java代码改动影响范围分析

Apache-2.0 license
python
白开水pp · 2023年07月01日 · 7411 次阅读 · 5 条评论

安装教程

要求 python >= 3.9 , sqlite3 >= 3.38

使用说明

项目克隆下来后,新建 python 文件,引入 jcci 项目 src 目录下的 jcci

from path.to.jcci.src.jcci.analyze import JCCI

# 同一分支不同commit分析
commit_analyze = JCCI('git@xxxx.git', 'username1')
commit_analyze.analyze_two_commit('master','commit_id1','commit_id2')

# 分析一个类的方法影响, analyze_class_method方法最后参数为方法所在行数,不同方法行数用逗号分割,不填则分析完整类影响
class_analyze = JCCI('git@xxxx.git', 'username1')
class_analyze.analyze_class_method('master','commit_id1', 'package\src\main\java\ClassA.java', '20,81')

# 不同分支分析
branch_analyze = JCCI('git@xxxx.git', 'username1')
branch_analyze.analyze_two_branch('branch_new','branch_old')

# 多项目联合分析,上述三种方法都支持,以analyze_two_commit方法举例
dependents = [
    {
        'git_url': 'git@xxxx.git',
        'branch': 'master',  # default master when empty
        'commit_id': 'HEAD'  # default HEAD when empty
    }
]
commit_analyze = JCCI('git@xxxx.git', 'username1')
commit_analyze.analyze_two_commit('master','commit_id1','commit_id2', dependents=dependents)

参数说明:

  • project_git_url - 项目 git 地址,代码使用本机 git 配置 clone 代码,确保本机 git 权限或通过用户名密码/token 的方式拼接 url 来 clone 代码。示例:https://userName:password@github.com/xxx.githttps://token@github.com/xxx.git
  • username1 - 随便输入,为了避免并发分析同一项目导致结果错误,用户 1 分析项目 A 时,用户 B 需要等待,所以设置了该参数

运行时,会将项目克隆到目录中,然后进行分析,生成后缀格式为.cci 的文件,其中包含分析结果生成的关系图数据,下载jcci-result.html ,选择分析结果的.cci 文件,即可可通过视图显示。

安全性

项目分析都是基于本地环境执行,无任何代码收集和日志上报,源码可查,请放心使用。

评论列表
yuan. 发表于 2024年11月26日

6

白开水pp 发表于 2024年07月23日

@Yeon9537 可以在项目主页下找到我的微信二维码加我沟通具体情况

Yeon9537 发表于 2024年07月23日

每次跑出来都是: {"nodes": [], "links": [], "categories": [], "impacted_api_list": []} ......

白开水pp 发表于 2024年02月04日
孙志强 发表于 2024年02月02日

请教一下 jcci-result.html 是哪来的