假设我们有三个项目(括号中的版本):
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取决于A&乙
现在我们想在新项目(D)中使用这个库作为依赖项。 所以我们添加deps:
C (0.0.1)
然后我们理解A缺少一些函数,所以我们创建它并将A的版本增加到0.0.2并将此依赖项添加到D:
C (0.0.1)
A (0.0.2)
在编译D时,Sbt会抱怨这个deps,比如
[warn]您的库依赖项之间可能存在不兼容性。 [警告]以下是一些被驱逐的图书馆:[警告] * A:0.0.1 - > 0.0.2
所以我想知道,这些案件的最佳做法是什么?我认为sbt知道语义版本控制,并且理解0.0.1与0.0.2兼容并且不会显示任何警告。
答案 0 :(得分:1)
我看到两种方式:
当您增加A
版本时,您还会增加A
依赖的B
版本:
B (0.0.1), depends on A (0.0.2)
将SNAPSHOT
添加到版本:
A (0.0.1-SNAPSHOT)
B (0.0.1), depends on A (0.0.1-SNAPSHOT)
语义版本控制也不是一个严格的规则,您不能完全依赖它,因为并非所有开发人员都遵守它,这就是为什么我认为sbt警告是合法的。