Scaladocが次のコードスニペットの型階層図を生成するようにしたいと思います。
trait A
trait B extends A
しかし、実行scaladoc <file>.scala
すると、タイプ階層は表示されません-inにA
もinにも表示されませんB
。どうすればそのような図を生成できますか?
まず、これにはScala2.10の一部であるScaladoc2が必要です。
2.10がインストールされている場合は-diagrams
、ダイアグラムを生成するためにオプションをScaladocに渡す必要もあります。ただし、そうすると、次のエラーメッセージが表示される可能性があります。
Graphviz dot encountered an error when generating the diagram for:
_root_
These are usually spurious errors, but if you notice a persistant error on
a diagram, please use the -diagrams-debug flag and report a bug with the output.
Graphviz will be restarted...
このエラーは、Scaladocがそれ自体では図を生成せず、このジョブを実行するためにGraphvizを呼び出そうとするために発生します。フラグを追加する-diagrams-debug
と、とりわけ正確なエラーメッセージが表示されます。
The following is the log of the failure:
Main thread in _root_: Exception: java.io.IOException: Cannot run program "dot": java.io.IOException: error=2, No such file or directory
この問題を解決するにdot
は、Graphvizの一部であるプログラムをインストールする必要があります。そうすると、正常に実行scaladoc -diagrams <file>.scala
され、結果として、生成されたドキュメントのメンバー検索バーの上にある「TypeHierarchy」というタグが表示されるはずです。
実行scaladoc -help
すると、ダイアグラムオプションの詳細情報が表示されます。
-diagrams Create inheritance diagrams for classes, traits and packages.
-diagrams-dot-path <path> The path to the dot executable used to generate the inheritance diagrams. Eg: /usr/bin/dot
-diagrams-dot-restart <n> The number of times to restart a malfunctioning dot process before disabling diagrams (default: 5)
-diagrams-dot-timeout <n> The timeout before the graphviz dot util is forcefully closed, in seconds (default: 10)
-diagrams-max-classes <n> The maximum number of superclasses or subclasses to show in a diagram
-diagrams-max-implicits <n> The maximum number of implicitly converted classes to show in a diagram