1
我对SBT子项目有一个奇怪的问题,我认为这与依赖项相关。这里是我的设置:SBT中的子项目依赖关系
- 我有两个子项目A中的SBT项目和B.
- A包含一类和同伴对象
MyA
- B依赖于A.
- B包含的对象
MyB
这有一个主要方法。
当我尝试从SBT提示符下执行MyB
,我得到一个MyA
NoSuchMethodError
。这不是ClassNotFoundException
,但可能是因为它看到类路径中的MyA
类,而不是MyA
对象。
作为一个完整性检查,我放弃了B子项目并将其源代码移到了A源树中。当我从SBT提示运行MyB
时,它按预期工作。
有没有人遇到过这个问题,还是我在做明显的错误?
这里是我的项目配置:
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)
}
UPDATE:这似乎是编译错误。我编译了一个组合的A + B源代码树,然后仅将B类复制到'b/target/...'目录中,并且'MyB'正确运行。 – earldouglas 2011-05-18 18:12:50