2016-03-30 7 views
2

Ich habe ein build.sbt Projekt, das verwendet:Wie löst man abhängige Konflikt einer SBT Dependecy?

libraryDependencies ++= Seq(
    "com.lerestau" % "killer-launcher" % "1.0.2", 
    "com.lerestau" % "menu-starter" % "1.0.0" 
) 

Menü-Starter transitively "Killer-launcher" % "0.0.8" Herunterladen und somit Fehler in aktuellem Projekt zu bekommen. Gibt es eine Möglichkeit, diese Art von Konflikt zu lösen? Ich kam mit dependencyOverrides, aber das funktioniert, wenn der Konflikt vollständig binär ist. Das hat nicht funktioniert. Wie löst man in SBT?

Antwort

2

auf dem älteren Killer-Launcher Version der transitive Abhängigkeit von Menü-Starter loszuwerden Folgendes sollte: in the documentation

libraryDependencies ++= Seq(
    "com.lerestau" % "killer-launcher" % "1.0.2", 
    "com.lerestau" % "menu-starter" % "1.0.0" exclude("com.lerestau", "killer-launcher" 
) 

Weitere Details gefunden werden kann leider es scheint nicht zu sein, um einen Weg zu verlinken Sie direkt zum entsprechenden Bereich.

+0

Ich verwende eine 'Klasse', die in der neuen Version definiert ist, d. H. ** 1.0.2 **, aber es ist nicht in der alten Version (0.0.8) vorhanden. Wenn ich ("com.lestestau", "killer-launcher") ausschließe, würde es "NoClassDefFoundError" werfen, wie es in meinem Fall war. –

+0

Menü-Starter enthält nur Version 0.8, so dass man keine Auswirkungen haben sollte, es sei denn, Menü-Starter hängt von Schnittstellen ab, die nur in 0.8 verfügbar sind –

+0

10 Meinem Verständnis nach sagen Sie "auszuschließen, dass man keine Auswirkungen haben sollte auf ** my project ** ", das ist richtig für die Zusammenstellung. Aber zur Build-Zeit und als ich versuchte, das auszuführen, bekam ich "NoClassDefFoundError" auf "com/lerestau/killer-launcher/Launcher $ NewLauncher". Dieser ** NewLauncher ** ist in der Version ** 1.0.2 ** aber nicht in ** 0.0.8 ** enthalten. –

Verwandte Themen