У меня странная проблема с подпроектами SBT, которая, я думаю, связана с зависимостями. Вот мои настройки:
- У меня есть проект SBT с двумя подпроектами A и B.
- A содержит класс и сопутствующий объект
MyA
- B зависит от A.
- B содержит объект
MyB
, у которого есть метод main.
Когда я пытаюсь выполнить MyB
из приглашения SBT, я получаю NoSuchMethodError
на MyA
. Это не ClassNotFoundException
, но, возможно, это происходит потому, что он видит класс MyA
на пути к классам, но не объект MyA
.
В качестве проверки работоспособности я отбросил подпроект B и переместил его источник в дерево источников A. Когда я запускаю MyB
из приглашения SBT, он работает как положено.
Кто-нибудь сталкивался с этим или я делаю что-то явно не так?
Вот моя конфигурация проекта:
class MyProject(info: ProjectInfo) extends ParentProject(info) {
lazy val a = project("a", "a", new AProject(_))
lazy val b = project("b", "b", new BProject(_), a)
object Dependencies {
lazy val scalaTest = "org.scalatest" % "scalatest_2.9.0" % "1.4.1" % "test"
}
class AProject(info: ProjectInfo) extends DefaultProject(info) with AutoCompilerPlugins {
val scalaTest = Dependencies.scalaTest
val continuationsPlugin = compilerPlugin("org.scala-lang.plugins" % "continuations" % "2.9.0")
override def compileOptions = super.compileOptions ++ compileOptions("-P:continuations:enable") ++ compileOptions("-unchecked")
}
class BProject(info: ProjectInfo) extends DefaultProject(info)
}