https://github.com/xuwei-k/dependency-graph
あけましておめでとうございました。つくりました。
http://dependency-graph.herokuapp.com/com.typesafe.play/play_2.11/2.4.6
最低限の使い方としては、URLにそのままgroup idとartifact idとversion入力するだけなので、かなり手軽に使えるはずです。
苦労した点やサイト自体の簡単な説明
- いい感じのsvg出力のためには、graphvizというの(たぶんC++製のやつ)インストールしないといけない
- herokuにはmulti-buildpackみたいなのがあり、graphvizのbuildpackもあったので組み合わせて解決
- https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app
- https://github.com/ddollar/heroku-buildpack-multi
- 最初雑にsbtそのものを外部コマンドで呼び出していたが、heroku上だとかなりな高確率でメモリ足りなかったりタイムアウトで失敗する(ローカルではどうにかなる)
- エラーをユーザーに返すのに、std outを差し替えたり、synchronizedしてて色々酷い。試行錯誤の残骸であって、最終的な結果としてはもっといい感じにできた気がするし、エラーに関してはまずlogger使うべきであるけど、もう面倒になった
- 内部のtimeoutのためだけにFuture使った箇所あってつらい
- sbtのbuild.sbt自体を動的に作成して一から実行したり、外部コマンドでgraphviz呼び出ししてるので、頑張ったけどまだ結構な確率でタイムアウトやメモリ足りなくなる
- なので、キャッシュとか入れないとつらいので、雑なキャッシュ機能入れた
追記: