如何更改播放框架依赖版本

How to change play framework dependency version

我想将我的一个库更改为最新版本。在哪里可以找到正在运行的依赖项的版本。

通常,您可以通过检查该版本 Play 的源代码中的 project/Dependencies.scala 文件来查看 Play 的直接依赖项列表。对于版本 2.4.3,该文件位于:https://github.com/playframework/playframework/blob/2.4.3/framework/project/Dependencies.scala

在 Jackson 的具体案例中,组 ID 和模块结构在 Jackson 1.x 和 2.x 之间发生了变化。 Play 2.4.3 使用 Jackson 2.5.4。如果您的项目依赖于 Jackson 1.8.5,则此依赖性不是来自 Play,而是来自其他来源。

你可以使用sbt-dependency-graph插件来查看完整的传递依赖树,看看它是在哪里引入的。

要更新到较新的版本,您可以将所需版本的直接依赖项添加到 build.sbt

libraryDependencies += "org.codehaus.jackson" % "jackson-mapper-asl" % "1.9.13"

这将覆盖其他库请求的版本;默认情况下,sbt 将使用请求的最大版本。

但是,有几点需要注意:

  1. Jackson 由几个子模块组成。如果您在同一个项目中使用其中的几个,包括传递,最好使用所有这些的相同版本。这可能需要向您的项目添加额外的依赖项以使它们保持同步。
  2. 当升级你的应用程序中的依赖项时,它也被它所依赖的其他库使用,你需要考虑向后兼容性。 Jackson 并不总是在次要版本之间完全向后兼容,因此如果您更新到比您的库设计使用的版本更新的 Jackson 版本,您可能会在运行时遇到问题。
  3. 在同一项目中同时使用 Jackson 1.x 和 2.x 是可能的,因为它们具有不同的组 ID 和 Java 包名称,但这可能会造成混淆并容易出错。如果可以的话,最好在您选择的 Play Framework 版本使用的 Jackson 版本上进行标准化。