2017-03-27 31 views
0

假设我们有三个项目(版本在括号中):sbt,如何维护自己的库?

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取决于一个& B.

现在,我们要使用这个库,依赖于我们的新项目(d) 。 所以我们添加DEPS:

C (0.0.1) 

然后我们了解,缺少一些功能,所以我们创建和增加的版本0.0.2,并添加这种依赖到d:

C (0.0.1) 
A (0.0.2) 

当编译D时,Sbt会抱怨这个代价,类似于

[警告]您的库依赖关系可能存在不兼容性。 [提醒]以下是一些被驱逐的库:[提醒] * 答:0.0.1 - > 0.0.2

所以我不知道,什么是对这样的情况下,最好的做法呢?我认为sbt知道语义版本控制,并理解0.0.1与0.0.2兼容,并且不会显示任何警告。

+0

[SBT:是否明智地解决库依赖关系的驱逐警告](http://stackoverflow.com/questions/42520273/sbt-is-it-wise-to-fix-eviction-warnings-of -library依赖性) – danielnixon

回答

1

我看到2种方式:

  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)

而且语义版本并不是一个严格的规则,你不能依靠它完全是因为不是所有的开发商坚持下去,这就是为什么我认为SBT警告是合法的。