24023


[(maven) サブモジュール間の依存関係グラフを取得するには？](https://ja.stackoverflow.com/q/8390/754)
を以前質問しました。そこでの回答は、

[code]

    mvn org.fusesource.mvnplugins:maven-graph-plugin:reactor -Dhide-external=true
    
[/code]

を使うとよい、ということでした。

* * *

基本的に、これまで問題なく使っていたのですが、多数のサブモジュールを持つようなプロジェクトの場合、このプログラムが１日たっても終わらなくなりました。おそらく、
graphviz の計算処理で時間がかかっていると思われるので、ひとまず自分で graphviz
のファイルをチューニングして、多少不恰好でもいいから、依存関係グラフを計算しようとしたのですが、この「依存関係情報」を出力する方法がわからずにいます。

質問:

  * maven のモジュール間の依存関係情報を、最終的には graphviz に与えられる形に加工できるような、スクリプトで処理しやすい形で出力することはできますでしょうか。

試したこと:

  * `maven-graph-plugin` に対して、 `-Dkeep-dot=true` を指定して実行してみたのですが、 dot ファイルを出力しながら計算しているのかなんなのか、しばらく(１日)放置しても、 dot ファイルの出力が中途半端なままでした。


CC BY-SA 3.0
2016-03-16T16:47:37.970
23206
2016-04-14T14:34:53.540
2017-04-13T12:52:38.920
-1
754
question
maven
maven のモジュール間依存関係の情報を出力するには？


graphviz を当該プラグインで最終的に出力できたので、その共有をします。

まず

[code]

    mvn org.fusesource.mvnplugins:maven-graph-plugin:reactor \
        -Dhide-external=true                                 \
        -Dgraph.target=graph.dot
    
[/code]

のように、 `graph.target` プロパティの値の拡張子が `.dot` である場合には、graphviz
への処理を実行せずに、`.dot`ファイルを最終生成物として出力します。

* * *

それはそうと、このプラグインは `.dot`
ファイルの計算でまずい形の再帰が記述されていて、おそらく計算量が指数時間なので、実行が終わっていなかったことがわかりました。

  * <https://github.com/fusesource/mvnplugins/pull/14>

上記の修正を当てたプラグインでもって計算を行うと、
`.dot`ファイルの計算はほぼ一瞬で終了し、`.dot`の計算も、１日放置すれば終わる程度である大きさだったので、今回の問題はひとまず解決しました。


CC BY-SA 3.0
2016-04-14T14:27:09.013
24023
2016-04-14T14:34:53.540
2016-04-14T14:34:53.540
754
754
23206
answer