コードのベースは、もう4年くらい前 に書いたやつ持ってきただけ
https://github.com/xuwei-k/sbt-class-diagram
使い方は
- これ http://www.graphviz.org/ をローカルにインストール(内部でこれをコマンドで呼び出すので必須)
- githubのREADMEに書いてあるとおりに、addSbtPluginをproject/plugin.sbtに追加と、build.sbtにsetting読み込ませる
- sbtのshellから、 classDiagram "クラス図に含めたいclass名" (複数可) を入力
- version 0.1.3から、class名がtab補完効くようになりました
- うまく行けば勝手にブラウザ立ち上がってSVG表示される
といった感じです。現時点の0.1.1での注意点や細かい仕様やその他解説しておくと
- sbt0.13.xにしか対応してません(今後も0.12のクロスビルドはしないだろう)
- クラス名指定して、その親classやtraitしか辿らないので、子供のclassは勝手に含まれたりはしません
- ひたすらリフレクション使ってるだけ
- なので、別にScalaでなくても、Javaでもその他JVM言語でも動く
- そして、pathに入っていれば、自作のclassだろうが依存ライブラリのclassだろうが関係なく表示可能なはず
- 手抜きで、testのClassLoader使ってるので、少し余計な処理が走る
*1:自分の実力不足により