安裝
首先到Github的https://github.com/multilang-depends/depends/releases下載最新的depends,現(xiàn)在版本是0.9.0?,F(xiàn)有的的啟動命令有個Bug。解壓縮后,用記事本打開編輯depends.bat文件。
把內(nèi)容從"exec java -jar depends.jar %" 替換為"java -jar depends.jar %" 。
用windows cmd命令行打開depends.bat -h。
里面有幾個重要參數(shù),我們會用到:
-f, --format 輸出報告的文件格式,有json(default),xml,excel,dot plantuml。
-g, --granularity=<granularity>, 顆粒度,顆粒度有源文件(默認)、方法。
--auto-include 自動包含子目錄。
下面是一個完整的命令行例子:
depends --auto-include -g file -f dot java E:\workspaces\xxxx output
其中"E:\workspaces\xxxx "是代碼的根目錄,output是輸出報告的文件名,輸出后會輸出output.dot。
執(zhí)行時間還是比較快的,4秒后就能輸出報告了。
可視化
輸出的.dot文件是需要可視化Graphviz軟件打開,到官網(wǎng)下載Graphviz https://graphviz.gitlab.io/_pages/Download/Download_windows.html。
安裝完畢后,運行bin目錄下的,GVEdit.exe。打開之前輸出的output.dot
下面的截圖的項目是一個小項目,整個項目一共僅有12個文件,輸出的文件依賴圖見下圖的右側(cè)。
嘗試一個的中型項目,一共571個Java文件,輸出的依賴圖如下,看起來已經(jīng)不怎么可讀了。
結(jié)論
優(yōu)點:代碼分析速度快,開源僅需一行命令行即可運行,便于和第三方應(yīng)用如(DevOps、可視化工具)集成。
缺點:此工具僅能輸出依賴圖,且可視化完全依賴第三方可視化工具(嘗試了作者介紹的plantuml、Graphviz ),但市面上可視化工具出圖的效果很不好,幾乎不可讀,需要自研可視化工具來解析才能達到可用的效果。
綜上,現(xiàn)在版本0.9版,離真正可用還有一段時間。此外,還需要更好的可視化工具支撐,建議在觀察一段時間出到1.0.0正式版再說。