2013-04-09 17 views
5

Używamy gry 2.1.1 (scala) i w niektórych wysiłkach, aby związać nasze zależności, odkryliśmy, że kilka starszych dep jest ładowanych bezpośrednio przez strukturę gry.Zagraj w podstawowe zarządzanie zależnościami/wykluczeniem jądra

konkretnie, oauth.signpost przynosi HTTP komponentów 4,0 (aw kolei Commons kodeków 1,3), natomiast mamy inne współzależności na HTTP 4.1 i componts Commons kodeków 1,6

dokumentacja wydaje się dość rzadki w ten obszar - przynajmniej w starszym odtwarzaniu 1.2.x the dependencies.yml był nieco bardziej wyraźny, ale nie mogę znaleźć żadnych odniesień do obecnego wydania 2.1.x.

Nienawidzę mieć futz z framework.scala platformy w $ {PLAY2_HOME}/framework/project, aby usunąć zależność (nigdy nie będziemy potrzebować oauth.signpost w tej konkretnej aplikacji), ale jak dotąd to wydaje się tak jak w jedyny sposób.

Jakieś wskazówki?

(edit: i przyszedł także po drugiej stronie tego: Play Framework 2.1 Remove a core dependency, który jest związany z konkretnym przechodniego uzależnienia, co wolałbym być w stanie zrobić, to usunąć całą wyraźną zależność od ram rdzenia)

Odpowiedz

3

I don „t wiedzieć, jak wykluczyć zależność rdzenia, ale można spróbować wykluczyć przechodnie współzależności w pliku Build.scala:

val appDependencies = Seq(
    ... 
    ("oauth.signpost" % "signpost-commonshttp4" % "1.2.1.2") .exclude("org.apache.httpcomponents", "httpclient") 
    ) 

lub użyć metody intransitive():

val appDependencies = Seq(
    ... 
    ("oauth.signpost" % "signpost-commonshttp4" % "1.2.1.2") .intransitive() 
    ) 

To nie jest idealne rozwiązanie, ale może ci pomóc.

7

dzięki @nico_ekito!

masz ustawione mnie we właściwym kierunku, deklarując jednoznacznych wykluczeń dla wersji samej gry, byłem w stanie usunąć zależność ramową Rdzeń:

val appDependencies = Seq(
    // play framework drags in quite a few deps we dont need. this is how we pare it back. 
    ("play" % "play_2.10" % "2.1.1") 
    .exclude("oauth.signpost", "signpost-core") 
    .exclude("oauth.signpost","signpost-commonshttp4"), 

    "com.github.tototoshi" %% "scala-csv" % "0.7.0", 
    "se.radley" %% "play-plugins-salat" % "1.2", 
    "org.specs2" %% "specs2" % "1.14" % "test" 
) 
+0

Dzięki za podzielenie się ostateczne rozwiązanie! –