sbt,如何维护自己的库?
sbt, how to maintain own libraries?
假设我们有三个项目(括号中的版本):
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 和 B。
现在我们想在我们的新项目 (D) 中使用这个库作为依赖项。
所以我们添加部门:
C (0.0.1)
然后我们了解到 A 缺少一些功能,所以我们创建它并将 A 的版本增加到 0.0.2 并将此依赖项添加到 D:
C (0.0.1)
A (0.0.2)
Sbt 在编译 D 时会抱怨这个 deps,类似
[warn] There may be incompatibilities among your library dependencies.
[warn] Here are some of the libraries that were evicted: [warn] *
A:0.0.1 -> 0.0.2
所以我想知道,对于此类情况,最佳做法是什么?我认为 sbt 知道语义版本控制并理解 0.0.1 与 0.0.2 兼容并且不会显示任何警告。
我看到了两种方式:
当你增加A
版本时,你也会增加B
依赖的A
的版本:
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 警告是合法的。
假设我们有三个项目(括号中的版本):
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 和 B。
现在我们想在我们的新项目 (D) 中使用这个库作为依赖项。 所以我们添加部门:
C (0.0.1)
然后我们了解到 A 缺少一些功能,所以我们创建它并将 A 的版本增加到 0.0.2 并将此依赖项添加到 D:
C (0.0.1)
A (0.0.2)
Sbt 在编译 D 时会抱怨这个 deps,类似
[warn] There may be incompatibilities among your library dependencies. [warn] Here are some of the libraries that were evicted: [warn] * A:0.0.1 -> 0.0.2
所以我想知道,对于此类情况,最佳做法是什么?我认为 sbt 知道语义版本控制并理解 0.0.1 与 0.0.2 兼容并且不会显示任何警告。
我看到了两种方式:
当你增加
A
版本时,你也会增加B
依赖的A
的版本: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 警告是合法的。