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

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

When I use the above method pullXml, which is provided by scales.xml, I am getting the following error

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)

The build.sbt file entry is -- "org.scalesxml" %% "scales-xml" % "0.5.0"

I am running the code in play 2.2.1 built with Scala 2.10.2 (running Java 1.7.0_79)

How do I resolve it?

Goku__
  • 940
  • 1
  • 12
  • 25

2 Answers2

2

It's missing scalaz.Scalaz.equal so probably something else brought in a different version of scalaz into your build.

There is a nice sbt plugin that list the dependency graph that might help you identify where what version of ScalaZ is introduced: https://github.com/jrudolph/sbt-dependency-graph

johanandren
  • 11,249
  • 1
  • 25
  • 30
0

In my case, specs2 was the culprit. I am using specs2 version 3.6.1-scalaz-7.0.6 now, until scales-xml gets updated. I think scalaz compatibility broke around version 7.1.