2.1.1時点の情報。*1
他にもパターンあるかもしれないが、以下が「なんでScalaのプロジェクトなのに、guavaとかspringついてくるんだよ?」という典型的なパターンだと思う
- Evolutionはplay-jdbcのプロジェクト内にある
- play-jdbcはplay-javaに依存してる
- play-javaの依存にspringとかguavaとかyamlとかservlet3とかhibernateとか大量
つまり、Scalaのプロジェクトだとしても、evolution利用するだけで*2、これだけ大量の依存(Play-Javaまで全部)ついてくる\(^o^)/
Evolution利用しなければある程度減るが、それでもまだ多い(?)
masterでは、"play-jdbc"が"play-java"に依存しなくなっていて、ある程度改善されてる?らしい
(が、masterとはおそらく2.2系のことであり、すぐにはでない?)
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においては