2017-03-27 6 views
0

Nehmen wir an, wir drei Projekte (Version in Klammern) haben:sbt, wie man eigene Bibliotheken pflegt?

A (0.0.1) 
B (0.0.1), depends on A (0.0.1) 
C (0.0.1), depends on B (0.0.1) 

C auf A & B.

nun diese Bibliotheken als Abhängigkeiten in unserem neuen Projekt (D) verwenden, wir wollen, hängt . So fügen wir deps:

C (0.0.1) 

Dann verstehen wir, dass A eine Funktion fehlt, so schaffen wir es und Version von A bis 0.0.2 erhöhen und diese Abhängigkeit zu D hinzu:

C (0.0.1) 
A (0.0.2) 

Sbt wird über diese Deps beschweren, wenn D kompiliert wird, etwas wie

[warn] Es kann Inkompatibilitäten zwischen Ihren Bibliotheksabhängigkeiten geben. [warnen] Hier sind einige der Bibliotheken, die vertrieben wurden: [warnen] * A: 0.0.1 -> 0.0.2

i So frage mich, was ist die beste Praxis für Fälle wie diese? Ich dachte, dass sbt über semantische Versionierung weiß und versteht, dass 0.0.1 mit 0.0.2 kompatibel ist und keine Warnungen anzeigen wird.

+0

Mögliches Duplikat von [SBT: ist es ratsam, Räumungswarnungen von Bibliotheksabhängigkeiten zu reparieren] (http://stackoverflow.com/questions/42520273/sbt-is-it-wise-to-fix-eviction- warnings-of -Library-Abhängigkeiten) – danielnixon

Antwort

1

Ich sehe zwei Möglichkeiten:

  1. Wenn Sie A Version erhöhen, können Sie auch die Version von A erhöhen, dass B ist abhängig von:

    B (0.0.1), depends on A (0.0.2)

  2. SNAPSHOT zu Version:

    A (0.0.1-SNAPSHOT)

    B (0.0.1), depends on A (0.0.1-SNAPSHOT)

Auch semantische Versionierung ist keine strenge Regel und Sie können es nicht ganz verlassen, weil nicht alle Entwickler daran halten, deshalb habe ich sbt Warnung ist legal zu denken.

Verwandte Themen