2015-05-20 11 views
5

Come of Play 2.3, il gioco è aggiunto come un plugin SBT come segue nel mio Build.scala come segue:play framework 2.3.9 dipendenza di override

Project("root", file(".")).enablePlugins(play.PlayScala) 

hanno anche uno sguardo al documentation.

Ho bisogno di un specifica dependeny aggiornato, vale a dire Fluentlenium (Gioca 2.3.9 utilizza ancora 0.9.3):

"org.fluentlenium" % "fluentlenium-core" % "0.10.3" 

Come posso sostituire la vecchia versione e sostituirlo con uno più recente? Semplicemente aggiungendo la libreria allo libraryDependencies mi lascia con entrambe le versioni nel percorso della classe.


Edit: Dopo aver scavato un po 'più a fondo, sembra come se la (nuova?) Caratteristica di dependencyOverrides che viene fornito con SBT 13.8 potrebbe essere una soluzione:

Overriding a version. Ma dai un'occhiata anche allo Conflict Management dalla stessa documentazione.

Con questo è possibile ignorare le singole dipendenze, il che significa che è necessario ignorare manualmente ciascuna dipendenza di transititve.

+0

sufficiente rimuovere già esistente fluentlenium 0.9.3 nella cartella repository locale e riprovare – Sivailango

+0

Non come è funziona, ho paura. – mana

risposta

1

Semplicemente aggiungendo la libreria allo libraryDependencies mi lascia con entrambe le versioni nel percorso classe.

Sei sicuro di questo? sbt (Ivy) dovrebbe sfrattare il vecchio se ci sono più versioni nella stessa configurazione.

Nella maggior parte dei casi

libraryDependencies += "org.fluentlenium" % "fluentlenium-core" % "0.10.3" 

dovrebbe essere ok, scontato che 0.9.x sono compatibili a livello binario con 0.10.x. Se si vuole fare in modo che venga ignorata durante la risoluzione delle dipendenze transitiva, dependencyOverrides potrebbe essere la strada da percorrere:

dependencyOverrides += "org.fluentlenium" % "fluentlenium-core" % "0.10.3"