【发布时间】:2016-02-26 00:54:43
【问题描述】:
我有一个包含多个实用程序类的项目。让我们将其命名为Utils。
我有一个proj1,它取决于Utils。另一个proj2 依赖于proj1 和Utils。
问题是如果proj1 和proj2 都依赖于不同的Utils 版本,这将导致问题。
什么是最好的解决方案?
这种情况发生在Scala/SBT项目中,但我猜其他语言也有同样的问题。
编辑:
需要明确的是,
proj2是要运行的项目,它使用来自proj1和Utils的一些代码。
【问题讨论】:
-
确实没有最好的解决方案。只是解决方法和很大的希望。在某些时候,您将不得不选择一个版本的 Utils。如果它是较新的版本,您最好希望它向后兼容。如果它是旧版本,你最好希望你的库没有使用任何尚不存在的方法。无论哪种方式,交叉手指尝试一下,这是我能想到的唯一解决方案(当然,如果更新项目以使用相同版本的 Utils 是不可能的)。
-
utils 是另一个子项目还是可以拆分出来单独发布? sbt-assembly 项目has support for shading,因此您可以通过更改旧依赖项的名称来处理冲突。
-
@SeanVieira 他们是 3 个不同的项目。不涉及子项目
标签: scala maven dependencies sbt transitive-dependency