質問: (maven) サブモジュール間の依存関係グラフを取得するには? を以前質問しました。そこでの回答は、 ``` mvn org.fusesource.mvnplugins:maven-graph-plugin:reactor -Dhide-external=true ``` を使うとよい、ということでした。 --- 基本的に、これまで問題なく使っていたのですが、多数のサブモジュールを持つようなプロジェクトの場合、このプログラムが1日たっても終わらなくなりました。おそらく、 graphviz の計算処理で時間がかかっていると思われるので、ひとまず自分で graphviz のファイルをチューニングして、多少不恰好でもいいから、依存関係グラフを計算しようとしたのですが、この「依存関係情報」を出力する方法がわからずにいます。 質問: * maven のモジュール間の依存関係情報を、最終的には graphviz に与えられる形に加工できるような、スクリプトで処理しやすい形で出力することはできますでしょうか。 試したこと: * `maven-graph-plugin` に対して、 `-Dkeep-dot=true` を指定して実行してみたのですが、 dot ファイルを出力しながら計算しているのかなんなのか、しばらく(1日)放置しても、 dot ファイルの出力が中途半端なままでした。
回答: graphviz を当該プラグインで最終的に出力できたので、その共有をします。 まず ``` mvn org.fusesource.mvnplugins:maven-graph-plugin:reactor \ -Dhide-external=true \ -Dgraph.target=graph.dot ``` のように、 `graph.target` プロパティの値の拡張子が `.dot` である場合には、graphviz への処理を実行せずに、`.dot`ファイルを最終生成物として出力します。 それはそうと、このプラグインは `.dot` ファイルの計算でまずい形の再帰が記述されていて、おそらく計算量が指数時間なので、実行が終わっていなかったことがわかりました。 * 上記の修正を当てたプラグインでもって計算を行うと、 `.dot`ファイルの計算はほぼ一瞬で終了し、`.dot`の計算も、1日放置すれば終わる程度である大きさだったので、今回の問題はひとまず解決しました。