在 Play Framework 中强制依赖
Forcing dependency in Play Framework
今天我们的产品坏了,因为 Play 自动更新到一个库的最新版本破坏了另一个库。
有没有办法在 Play 中强制使用特定的库?
也就是说,我们希望在加载库时能够做到这一点
lazy val spring_aop = "org.springframework" % "spring-aop" % "4.1.7"
加载的是 4.2.0 版本,而不是 4.1.7
我尝试将 force() 附加到定义或使用 dependencyOverrides,但是当我执行播放 "update" 命令时,我下载了最后一个版本。
Play 不会自动更新任何内容。应用程序依赖项在 build.sbt
和 plugins.sbt
中定义。
在您的情况下,可能存在与子依赖项的冲突。其中一个库依赖于 4.1.7 版,另一个依赖于 4.2.0 版。此站点中的 Sbt 自动包含更新的包。解决方法:
- 使用软件包进行诊断取决于
spring-aop
。这是一个很好的工具 https://github.com/jrudolph/sbt-dependency-graph
- 从其中一个包中排除
spring-aop
http://www.scala-sbt.org/0.13/docs/Library-Management.html#Exclude+Transitive+Dependencies
当你降级 spring-aop
时,你可能会破坏其他软件包的功能
今天我们的产品坏了,因为 Play 自动更新到一个库的最新版本破坏了另一个库。
有没有办法在 Play 中强制使用特定的库?
也就是说,我们希望在加载库时能够做到这一点
lazy val spring_aop = "org.springframework" % "spring-aop" % "4.1.7"
加载的是 4.2.0 版本,而不是 4.1.7
我尝试将 force() 附加到定义或使用 dependencyOverrides,但是当我执行播放 "update" 命令时,我下载了最后一个版本。
Play 不会自动更新任何内容。应用程序依赖项在 build.sbt
和 plugins.sbt
中定义。
在您的情况下,可能存在与子依赖项的冲突。其中一个库依赖于 4.1.7 版,另一个依赖于 4.2.0 版。此站点中的 Sbt 自动包含更新的包。解决方法:
- 使用软件包进行诊断取决于
spring-aop
。这是一个很好的工具 https://github.com/jrudolph/sbt-dependency-graph - 从其中一个包中排除
spring-aop
http://www.scala-sbt.org/0.13/docs/Library-Management.html#Exclude+Transitive+Dependencies
当你降级 spring-aop
时,你可能会破坏其他软件包的功能