When creating a plug-in for sbt 0.13, is it important which version of scala 2.10 is associated with any library dependencies (of the plug-in) from?
My plugin currently depends on libraries built against scala 2.10.2. This works fine for single assemblies, but when assembly (A) depends on another assembly (B), through ProjectRef I find that the assembly directive sbt assembly failure in project B fails. It seems that sbt uses 2.10.2 to create directive files, but scala-reflect-2.10.0.jar (from the debug trace sbt, after Calling Scala compiler with arguments (CompilerInterface) is printed on the screen).
If I create a referenced project (B) myself, the assembly of the directive file will be successful, but again look at the downloadable banks. I see that scala-2.10.2/lib/scala-reflect.jar .
Error message on failure:
[error] error while loading MacroValue, Missing dependency 'bad symbolic reference. A signature in MacroValue.class refers to term annotations [error] in package scala.reflect.internal which is not available. [error] It may be completely missing from the current classpath, or the version on [error] the classpath might be incompatible with the version used when compiling MacroValue.class.', required by /home/alex.wilson/.ivy2/cache/org.scala-sbt/main-settings/jars/main-settings-0.13.0.jar(sbt/std/MacroValue.class) [error] error while loading InputEvaluated, Missing dependency 'bad symbolic reference. A signature in InputEvaluated.class refers to term annotations [error] in package scala.reflect.internal which is not available. [error] It may be completely missing from the current classpath, or the version on [error] the classpath might be incompatible with the version used when compiling InputEvaluated.class.', required by /home/alex.wilson/.ivy2/cache/org.scala-sbt/main-settings/jars/main-settings-0.13.0.jar(sbt/std/InputEvaluated.class) [error] error while loading ParserInput, Missing dependency 'bad symbolic reference. A signature in ParserInput.class refers to term annotations [error] in package scala.reflect.internal which is not available. [error] It may be completely missing from the current classpath, or the version on [error] the classpath might be incompatible with the version used when compiling ParserInput.class.', required by /home/alex.wilson/.ivy2/cache/org.scala-sbt/main-settings/jars/main-settings-0.13.0.jar(sbt/std/ParserInput.class) [error] three errors found
I can rebuild my plugin so that it depends on libraries built against 2.10.0, if necessary. But I'm not sure if this is the right approach and will help. Any advice would be greatly appreciated.
source share