Eine Abhängigkeit bar
hängt von foo
1.2.3 ab, aber diese Version von foo
hat einen Fehler und ich muss Version 1.2.2 verwenden.
Ich kann das mit force()
machen.
Diese Methode wird von den Dokumenten nicht empfohlen:
Erzwingen einer Revision (nicht empfohlen)
Hinweis: Das Forcen kann zu logischen Inkonsistenzen führen, daher wird es nicht mehr empfohlen.
Bedeutet dies, dass SBT einen anderen, besseren Weg als force()
hat, um eine bestimmte Version einer Abhängigkeit zu verwenden? Wenn ja, was?
Oder soll ich aus der Dokumentation schließen, dass dieses gesamte Problem nicht empfohlen wird?
Sie können dependencyOverrides verwenden:
%Vor%Sie vermeiden "logische Inkonsistenzen" sowieso nicht. Wenn Sie eine Version erzwingen, müssen Sie manuell auf Kompatibilität mit anderen Bibliotheken achten, es gibt keinen Ausweg.
Aus der Dokumentation:
Überschreiben einer Version
Bei binärkompatiblen Konflikten bietet sbt Abhängigkeitsüberschreibungen. Sie werden mit der Einstellung dependencyOverrides konfiguriert, die a ist Satz von ModuleIDs. Zum Beispiel die folgenden Abhängigkeitsdefinitionen Konflikt, weil Spark log4j 1.2.16 verwendet und scalaxb log4j verwendet 1.2.17:
%Vor%Der Standardkonfliktmanager wählt die neueste Version von log4j, 1.2.17:
%Vor%Um die Version zu ändern ausgewählt, fügen Sie eine Überschreibung hinzu:
%Vor%
Tags und Links dependencies sbt ivy