Playの依存性の多さについてまとめ

2.1.1時点の情報。*1

他にもパターンあるかもしれないが、以下が「なんでScalaのプロジェクトなのに、guavaとかspringついてくるんだよ?」という典型的なパターンだと思う

つまり、Scalaのプロジェクトだとしても、evolution利用するだけで*2、これだけ大量の依存(Play-Javaまで全部)ついてくる\(^o^)/

Evolution利用しなければある程度減るが、それでもまだ多い(?)


masterでは、"play-jdbc"が"play-java"に依存しなくなっていて、ある程度改善されてる?らしい
(が、masterとはおそらく2.2系のことであり、すぐにはでない?)

https://github.com/playframework/Play20/blob/d92e6948df67bcf3d7fc8f7a7697073e485c63a6/framework/project/Build.scala#L167-L169


2.1.1でScalaでEvolution利用したいだけなら、手作業でPlay-Javaの依存ライブラリをexclude指定すればある程度削れるものはあるだろうけど面倒・・・。はやく2.2だしてください




ちなみに、この発言 https://twitter.com/jroper/status/342639459642257408*3正確ではなく、guavaはexcludeしており
https://github.com/playframework/Play20/blob/2.1.1/framework/project/Build.scala#L406
guavaに依存する理由は上記に書いたとおり、のはずと思ったけど、
https://github.com/playframework/Play20/blob/d92e6948df67bcf3d7fc8f7a7697073e485c63a6/framework/project/Dependencies.scala#L15-L16

「どちらにしろguavaには依存しないといけないが、明示的に新しいversionに依存したいので、古いversionをexcludeしているだけ(?)」
のようなので、間違ってもいないのかな・・・

*1:2.1.2-RC1でも同じはず

*2:もちろん、この https://github.com/playframework/Play20/blob/2.1.1/framework/src/play-jdbc/src/main/scala/play/api/db/DB.scala playのデフォルトのDB.scalaを利用する場合も

*3:少なくとも2.1.1においては