2013-04-09 14 views
5

Usiamo il gioco 2.1.1 (scala) e in alcuni sforzi per legare le nostre dipendenze, abbiamo trovato che ci sono diversi deps più vecchi caricati direttamente dal framework di gioco.Play Framework core dependency management/exclusion

specificamente, l'oauth.signpost porta in HTTP componenti 4.0 (ea sua volta commons-codec 1.3), mentre abbiamo altre dipendenze da http-Componts 4.1 e commons-codec 1.6

la documentazione sembra piuttosto scarsa in quest'area - almeno nella precedente versione 1.2.x il dependencies.yml era un po 'più esplicito, ma non trovo riferimenti per la versione 2.1.x corrente.

mi piacerebbe dover futz con il framework Build.scala in $ {PLAY2_HOME}/framework/progetto per rimuovere la dipendenza (non avremo mai bisogno di oauth.signpost in questa particolare app), ma finora questo sembra come l'unico modo.

eventuali puntatori?

(edit: ho anche imbattuto in questo: Play Framework 2.1 Remove a core dependency che è legato ad una specifica dipendenza transitiva, quello che preferirei essere in grado di fare è rimuovere l'intera dipendenza esplicita dal quadro core)

risposta

3

I don 't sapere come escludere una dipendenza di base, ma si può tentare di escludere le dipendenze transitive nel Build.scala del file:

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

o utilizzare il metodo intransitive():

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

Non è la soluzione perfetta, ma può essere d'aiuto.

7

grazie @nico_ekito!

tu mi hai impostato nella giusta direzione, dichiarando esclude esplicite per la versione del gioco in sé, sono stato in grado di rimuovere il nucleo di dipendenza quadro:

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

Grazie per condividere la vostra soluzione definitiva! –