0
import scales.utils._
import ScalesUtils._
import scales.xml._
import ScalesXml._

// Some code
val xml = pullXml(xmlSource)
// Some more code

当我使用 scales.xml 提供的上述方法 pullXml 时,我收到以下错误

java.lang.NoSuchMethodError: scalaz.Scalaz$.equal(Lscala/Function2;)Lscalaz/Equal;
at Scales.xml.equals.DefaultQNameEquals$class.$init$(XmlComparisons.scala:28)
    at scales.xml.impl.EqualsHelpers$.<init>(EqualsHelpers.scala:10)
    at scales.xml.impl.EqualsHelpers$.<clinit>(EqualsHelpers.scala)
    at scales.xml.impl.XmlTypesImplicits$class.$init$(XmlTypesImplicits.scala:32)
    at scales.xml.ScalesXml$.<init>(ScalesXml.scala:3)
    at scales.xml.ScalesXml$.<clinit>(ScalesXml.scala)

build.sbt 文件条目是 -- "org.scalesxml" %% "scales-xml" % "0.5.0"

我正在运行使用 Scala 2.10.2 构建的 play 2.2.1 中的代码(运行 Java 1.7.0_79)

我该如何解决?

4

2 回答 2

2

它丢失了scalaz.Scalaz.equal,所以可能是其他东西在您的构建中引入了不同版本的 scalaz。

有一个很好的 sbt 插件,它列出了依赖关系图,可以帮助您确定在哪里引入了 ScalaZ 的版本: https ://github.com/jrudolph/sbt-dependency-graph

于 2015-05-04T15:58:55.657 回答
0

就我而言,specs2 是罪魁祸首。我现在使用 specs2 版本 3.6.1-scalaz-7.0.6,直到 scales-xml 得到更新。我认为 scalaz 兼容性在 7.1 版左右出现了问题。

于 2016-10-10T11:51:43.360 回答