【发布时间】:2014-01-30 20:34:44
【问题描述】:
这是一个关于版本控制和工作流程的问题。
我有多个项目
projectA/build.sbt
version := "1.0.0"
libraryDependencies ++= Seq(
"com.example" % "projectB" % "1.0.0",
"com.example" % "util" % "1.0.0"
)
projectB/build.sbt
version := "1.0.0"
libraryDependencies ++= Seq(
"com.example" % "util" % "1.0.0"
)
util/build.sbt
version := "1.0.0"
------------ 发展 --------------- ---------
我在util中添加了一个方法。
util/build.sbt
version := "2.0.0"
这个添加的功能很棒,所以我用它来优化projectB。
projectB/build.sbt
version := "1.1.0"
libraryDependencies ++= Seq(
"com.example" % "util" % "2.0.0"
)
------------ 发展 --------------- ---------
我希望projectA 更快,所以我拉入projectB。
projectA/build.sbt
version := "1.1.0"
libraryDependencies ++= Seq(
"com.example" % "projectB" % "1.1.0",
"com.example" % "util" % "1.0.0"
)
------------ 问题 --------------- ---------
现在,projectA 需要 util 版本 1.0.0,但 project B 需要 util 版本 2.0.0。
我可以更新projectA 以使用新版本的util。问题是我需要更新的项目和依赖项的数量可能非常大,并且依赖项链可能非常长。 (想象一下projectZ,它依赖于projectA 和util。)
有没有办法让我的项目依赖项具有最低版本?
例如,如果projectA 需要util 版本1.0.0 和projectB 需要util 版本2.0.0,则projectA 将使用2.0.0 版本结束。
如果是这样,如果有版本3.0.0 或util 可用,在这种情况下会发生什么? projectA 最终会使用2.0.0 还是3.0.0?
对我来说,如果我可以让一个项目使用最好的版本,从它自己的依赖项和(递归地)它的依赖项的依赖项中,那将是理想的,但不高于此。
【问题讨论】:
标签: sbt