2015-05-20 20 views
5

Jako of Play 2.3, Play dodaje się jako SBT Plugin następująco w moim Build.scala następująco:Playframework 2.3.9 Zależność przesłanianie

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

Również spojrzeć na documentation.

muszę konkretny dependeny zaktualizowane, a mianowicie Fluentlenium (Play 2.3.9 nadal używa 0.9.3):

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

Jak mogę zastąpić starą wersję i wymienić go na nowszy? Po prostu dodanie biblioteki do libraryDependencies pozostawia mnie z obu wersjach w ścieżce klasy.


Edycja: Po wykopaniu trochę głębiej, to wydaje się, że (nowy?) Cechą dependencyOverrides że pochodzi z SBT 13,8 mogłoby być rozwiązanie:

Overriding a version. Ale także spójrz na Conflict Management z tej samej dokumentacji.

Dzięki temu można przesłonić pojedyncze zależności, co oznacza, że ​​trzeba ręcznie przesłonić każdą zależność transititve.

+0

Wystarczy usunąć już istniejące fluentlenium 0.9.3 w folderze lokalnym repozytorium i spróbuj ponownie – Sivailango

+0

To nie jak to jest działa, obawiam się. – mana

Odpowiedz

1

Po prostu dodanie biblioteki do libraryDependencies pozostawia mnie z obu wersjach w ścieżce klasy.

Czy jesteś tego pewien? sbt (Ivy) powinien eksmitować starszy, jeśli istnieje wiele wersji w tej samej konfiguracji.

W większości przypadków

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

powinno być ok, pewnik, że 0.9.x są binarnie kompatybilny z 0.10.x. Jeśli chcesz się upewnić, że jest zastępowane podczas rozwiązywaniu zależności przechodniego, dependencyOverrides może być droga:

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