我有一个在 GitHub 上托管的项目,我使用 scala-steward 来保持我的插件和依赖项最新。这在一段时间内有效,但现在使用此类自动更新却变成了一场噩梦。事情是这样的。在我的plugins.sbt中,我依赖于scoverage,它已由scala-steward更新到版本2.0.6。但是拉取请求未能通过编译阶段,我看到以下错误:
[error] (update) found version conflict(s) in library dependencies; some are suspected to be binary incompatible:
[error]
[error] * org.scala-lang.modules:scala-xml_2.12:2.1.0 (early-semver) is selected over {1.3.0, 1.2.0, 1.1.1, 1.0.6}
[error] +- org.scoverage:scalac-scoverage-reporter_2.12:2.0.7 (depends on 2.1.0)
[error] +- org.scalariform:scalariform_2.12:0.2.0 (depends on 1.0.6)
[error] +- org.scala-lang:scala-compiler:2.12.16 (depends on 1.0.6)
[error] +- com.typesafe.sbt:sbt-native-packager:1.5.2 (scalaVersion=2.12, sbtVersion=1.0) (depends on 1.1.1)
[error] +- com.typesafe.play:twirl-api_2.12:1.5.1 (depends on 1.2.0)
[error] +- com.github.sbt:sbt-native-packager:1.9.9 (sbtVersion=1.0, scalaVersion=2.12) (depends on 1.3.0)
[error]
首先,最好在编译时报告此类不兼容性,以避免任何运行时意外。但是,我不确定如何解决这个问题。感觉就像我遇到了障碍。
编辑:这是我的实际项目:https://github.com/joesan/plant-simulator https://github.com/joesan/plant-simulator
我必须在我的project/plugins.sbt
文件来修复此错误:
ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always
我还在 build.sbt 中添加了以下内容:
ThisBuild / evictionErrorLevel := Level.Info
但我想我的 build.sbt 中不需要它。希望这对某人有帮助! Discord 的 Scala 社区帮助我解决了这个问题。感谢他们!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)