2015-05-20 8 views
5

Ab Wiedergabe 2.3 wird Wiedergabe als SBT Plugin hinzugefügt, wie in meinem Build.scala folgt wie folgt:Playframework 2.3.9 Abhängigkeitsüberschreibung

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

auch einen Blick auf die documentation haben.

Ich brauche eine spezifische dependeny aktualisiert, nämlich Fluentlenium (Wiedergabe 2.3.9 noch 0.9.3 verwendet):

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

Wie kann ich die alte Version ersetzen und es durch einen neuen ersetzen? Das Hinzufügen der Bibliothek zur libraryDependencies lässt mich mit beiden Versionen im Klassenpfad.


Edit: Nach einem wenig tiefer graben, so scheint es, als ob das (neue?) Merkmal dependencyOverrides, die 13,8 mit SBT kommt eine Lösung sein könnte:

Overriding a version. Aber schauen Sie sich auch Conflict Management aus der gleichen Dokumentation an.

Damit können Sie einzelne Abhängigkeiten übersteuern, dh Sie müssen jede Transitabhängigkeit manuell überschreiben.

+0

Entfernen Sie einfach bereits vorhandene fluentlenium 0.9.3 in Ihrem lokalen Repository-Ordner und versuchen Sie es erneut – Sivailango

+0

Das ist nicht, wie es funktioniert, fürchte ich. – mana

Antwort

1

Das einfache Hinzufügen der Bibliothek zum libraryDependencies lässt mich mit beiden Versionen im Klassenpfad.

Sind Sie sich sicher? sbt (Ivy) sollte den älteren entfernen, wenn mehrere Versionen in derselben Konfiguration vorhanden sind.

In den meisten Fällen

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

sollte in Ordnung sein, selbstverständlich, dass 0.9.x mit 0.10.x. binärkompatibel sind Wenn Sie sicherstellen möchten, dass es während der transitiven Abhängigkeitsauflösung außer Kraft gesetzt wird, kann dependencyOverrides der Weg zu gehen:

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