sbt,如何维护自己的库?

时间:2017-03-27 14:35:36

标签: maven sbt semantic-versioning

假设我们有三个项目(括号中的版本):

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兼容并且不会显示任何警告。

1 个答案:

答案 0 :(得分:1)

我看到两种方式:

  1. 当您增加A版本时,您还会增加A依赖的B版本:

    B (0.0.1), depends on A (0.0.2)

  2. SNAPSHOT添加到版本:

    A (0.0.1-SNAPSHOT)

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

  3. 语义版本控制也不是一个严格的规则,您不能完全依赖它,因为并非所有开发人员都遵守它,这就是为什么我认为sbt警告是合法的。