如何在使用scales.xml时解决NoSuchMethodError?

时间:2015-05-04 11:21:04

标签: java xml scala scales-xml

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

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

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

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文件条目是 - &#34; org.scalesxml&#34; %%&#34; scales-xml&#34; %&#34; 0.5.0&#34;

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

我该如何解决?

2 个答案:

答案 0 :(得分:2)

它缺少scalaz.Scalaz.equal,所以可能还有其他东西将不同版本的scalaz带入您的构建中。

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

答案 1 :(得分:0)

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