jcci 是Java 代碼提交影響分析工具,是一個純python庫,分析Java項目的兩次git提交對項目的影響,並生成樹形圖數據。
PYPI: jcci
軟件架構
大致原理同Idea的Find Usage一致,通過代碼改動定位代碼影響,並不斷遍歷受影響的類和方法直至找到最上層的controller層
代碼主要由python編寫,主要涉及2個庫:
- javalang java文件語法解析庫
- unidiff git diff信息解析庫
通過javalang語法解析獲取每個Java文件的import class extends implements declarators methods 等信息
通過unidiff 解析git diff信息(diff file, added_line_num, removed_lin_num)
然後根據文件增刪的代碼行去判斷影響了哪些類和方法,不斷遍歷受影響的類和方法直至找到最上層的controller層
通過傳入項目git地址分支兩次的commit id,即可分析出兩次commit id之間代碼改動所帶來的影響,並生成樹圖數據方便展示影響鏈路。
安裝教程
使用說明
新建python項目,新建python文件,代碼如下:
from jcci import jcci
jcci.analyze('git@xxxx.git','master','commit_id1','commit_id2', 'username1')
運行時,會將項目克隆到目錄中,然後進行分析,生成後綴格式為commit_id1…commit_id2.cci的文件,其中包含分析結果生成的樹形圖數據,打開jcci-result.html,選擇分析結果的.cci文件,即可可通過視圖顯示。
CCI result
CCI result tree view
#JCCI首頁文檔和下載 #Java #代碼改動影響範圍分析 #科技資訊