【问题标题】:Playframework 2.3.9 dependency overridePlayframework 2.3.9 依赖覆盖
【发布时间】:2015-05-20 13:04:50
【问题描述】:

从 Play 2.3 开始,Play 在我的 Build.scala 中添加为 SBT 插件,如下所示:

Project("root", file(".")).enablePlugins(play.PlayScala)

还可以查看documentation

我需要更新一个特定的依赖,即 Fluentlenium(Play 2.3.9 仍然使用 0.9.3):

"org.fluentlenium" % "fluentlenium-core" % "0.10.3"

如何替换旧版本并用新版本替换?只需将库添加到 libraryDependencies 即可让我在类路径中保留两个版本。


编辑:在深入挖掘之后,似乎 SBT 13.8 附带的 dependencyOverrides 的(新?)功能可能是一个解决方案:

Overriding a version。但也请查看同一文档中的Conflict Management

有了这个你可以覆盖单个依赖,这意味着你必须手动覆盖每个传递依赖。

【问题讨论】:

  • 只需删除本地存储库文件夹中已经存在的 fluentlenium 0.9.3 并重试
  • 恐怕不是这样的。

标签: sbt playframework-2.3


【解决方案1】:

只需将库添加到 libraryDependencies 即可在类路径中保留两个版本。

你确定吗?如果同一配置中有多个版本,sbt (Ivy) 应该驱逐旧版本。

在大多数情况下

libraryDependencies += "org.fluentlenium" % "fluentlenium-core" % "0.10.3"

应该没问题,因为 0.9.x 与 0.10.x 二进制兼容。如果你想确保它在传递依赖解析期间被覆盖,dependencyOverrides 可能是要走的路:

dependencyOverrides += "org.fluentlenium" % "fluentlenium-core" % "0.10.3"

【讨论】:

    猜你喜欢
    • 2021-03-25
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    • 2018-11-01
    • 2020-04-12
    • 2023-03-10
    • 2021-03-02
    • 2017-11-05
    相关资源
    最近更新 更多