У меня странная проблема с подпроектами SBT, которая, я думаю, связана с зависимостью. Вот моя установка:
- У меня есть проект SBT с двумя подпроектами A и B.
- A содержит класс и сопутствующий объект
MyA
- В зависит от А.
- B содержит объект
MyB
, у которого есть основной метод.
Когда я пытаюсь выполнить 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)
}
b/target/...
, иMyB
работает правильно. - person earldouglas   schedule 18.05.2011