12

Scaladocが次のコードスニペットの型階層図を生成するようにしたいと思います。

trait A
trait B extends A

しかし、実行scaladoc <file>.scalaすると、タイプ階層は表示されません-inにAもinにも表示されませんB。どうすればそのような図を生成できますか?

4

1 に答える 1

13

まず、これには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
于 2012-11-17T22:35:00.280 に答える