如何更改游戏框架依赖项版本



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

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

在杰克逊的特定情况下,组 ID 和模块结构在杰克逊 1.x 和 2.x 之间发生了变化。 Play 2.4.3 使用的是杰克逊 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. 杰克逊由几个子模块组成。如果在同一项目中使用其中的多个,包括传递,则最好使用所有这些的相同版本。这可能需要向项目添加其他依赖项,以使它们保持同步。
  2. 升级应用程序中也由它所依赖的其他库使用的依赖项时,需要考虑向后兼容性。Jackson 在次要版本之间并不总是完全向后兼容,因此,如果您更新到比库设计使用的 Jackson 版本更新的版本,则可能会在运行时遇到问题。
  3. 在同一项目中同时使用 Jackson 1.x 和 2.x 是可能的,因为它们具有不同的组 ID 和 Java 包名称,但可能会造成混淆且容易出错。如果可以的话,最好对您选择的 Play 框架版本使用的杰克逊版本进行标准化。

最新更新