scaladoc
- apiドキュメントを出力してくれるツール
- 公式 https://docs.scala-lang.org/style/scaladoc.html
install(macの場合)
- scalaをインストールしたとき突っ込まれてる
> brew install scala
> which scaladoc
/usr/local/bin/scaladoc
usage
- scalaのプロジェクト上
scaladoc src/**/*.scala
ドキュメントにしたコード
/**
* ヒーロー!コミックブックの主役
*/
trait Hero {
/**
* ヴィランをやっつけることで話が進む
* @param viran
*/
def defeatViran(viran: Viran): Unit
/**
* 良いことをするものがヒーロー
*/
def goodActivity(): Unit
}
ドキュメントを見る
-
scaladoc
を実行したディレクトリに出力されるindex.html
を開く! - Heroトレイトに対するコメントが表示されている
- Heroトレイトのドキュメント内ではメソッドへのコメントが表示されている!
図が欲しいなあ!
ヘルプを見る
- グラフを出力するっぽいオプションがあるぞ‥!
> scaladoc -help
~略~
-diagrams Create inheritance diagrams for classes, traits and packages.
~略~
Try! グラフ出力
> scaladoc -graph src/**/*.scala
- めっちゃ怒られた‥下の文言がめっちゃでてきた
- 図を作る時にエラーが起こっているらしい
Graphviz dot encountered an error when generating the diagram for: Hero
- めちゃくちゃ出てきた文言の最後の方にゴールのための一言が
Please note that graphviz package version 2.26 or above is required.
-
graphviz
ってのが必要らしいな
graphviz
- brewでインストールできる
> brew install graphviz
- グラフを描画するためのパッケージ
- wikiに日本語ページがある‥wiki
ReTry! グラフ出力
> scaladoc -graph src/**/*.scala
- とくにエラーメッセージは出ず‥!
- scaladocを見ると
- 感動!グラフが出てきた!
戦いは続く
- sbtからscaladocを作りたい
scaladoc from sbt
- sbtからコマンド1つで出来ました
- sbtプロジェクト上で
> sbt
sbt> doc
-
しかし、これで出力したドキュメントには図が乗っていない...
- つまり実行オプションに
-graph
がないという状況なのだろう
- つまり実行オプションに
-
sbtのdocコマンドから呼ばれるscaladocにはbuild.sbtでscalacOptionsとして定義されたものが渡される
-
build.sbtを書き換える
build.sbt
~略~
scalacOptions in (Compile,doc) := Seq("-diagrams")
~略~
まとめ
- scalaをインストールしたとき付いてくるscaladocでapiドキュメントが出力できる
- クラス図をだしたかったら
- graphvizをインストール
- オプション
-graph
をつけてscaladocを実行する
- sbtから利用したいときは
doc
タスクを使う- scaladocのオプションを渡したいときは
build.sbt
でscalacOptions
に定義をしておく
- scaladocのオプションを渡したいときは