stanch / reftree

Automatically generated diagrams and animations for Scala data structures
http://stanch.github.io/reftree/
GNU General Public License v3.0
587 stars 36 forks source link

NoClassDefFoundError fastparse.all$ when running in current Ammonite #23

Closed sbrunk closed 5 years ago

sbrunk commented 5 years ago
$ coursier launch com.lihaoyi:ammonite_2.12.7:1.4.2 --main ammonite.Main

Loading...
Welcome to the Ammonite Repl 1.4.2
(Scala 2.12.7 Java 1.8.0_181)
If you like Ammonite, please support our development at www.patreon.com/lihaoyi
@ import $ivy.`io.github.stanch::reftree:1.2.1` 
import $ivy.$                                

@ import reftree.render.{Renderer, RenderingOptions} 
import reftree.render.{Renderer, RenderingOptions}

@ val renderer = Renderer(
    renderingOptions = RenderingOptions(density = 75),
  ) 
java.lang.NoClassDefFoundError: fastparse/all$
  reftree.geometry.Color$.<init>(Color.scala:100)
  reftree.geometry.Color$.<clinit>(Color.scala)
  reftree.render.RenderingOptions$.apply$default$2(Options.scala:19)
  ammonite.$sess.cmd2$.<init>(cmd2.sc:2)
  ammonite.$sess.cmd2$.<clinit>(cmd2.sc)
java.lang.ClassNotFoundException: fastparse.all$
  java.net.URLClassLoader.findClass(URLClassLoader.java:382)
  ammonite.runtime.SpecialClassLoader.findClass(ClassLoaders.scala:215)
  java.lang.ClassLoader.loadClass(ClassLoader.java:424)
  java.lang.ClassLoader.loadClass(ClassLoader.java:357)
  reftree.geometry.Color$.<init>(Color.scala:100)
  reftree.geometry.Color$.<clinit>(Color.scala)
  reftree.render.RenderingOptions$.apply$default$2(Options.scala:19)
  ammonite.$sess.cmd2$.<init>(cmd2.sc:2)
  ammonite.$sess.cmd2$.<clinit>(cmd2.sc)

First guess: Ammonite depends on fastparse 2.0.5 (via scalaparse), so perhaps that's on the classpath instead of the older version required by reftree.

sbrunk commented 5 years ago

Got it working by upgrading to fastparse 2 so it seems to be indeed caused by the version conflict. PR coming soon.