多项目SBT构建错误的符号引用scala-reflect运行时

时间:2015-10-13 14:48:48

标签: scala sbt scala-reflect

我的任务是将旧的ant构建脚本重写为SBT。碰巧,我们的套件由3个模块组成:

  • Play 2.3前端网络服务器;
  • 用于从各种其他系统检索数据的后端;
  • 一个中间模块,包含一些用于数据库访问和业务逻辑的共享类。

可以找到我的Build.scala文件的摘录:

val sharedSettings = Seq(
  organization        := <organization here>,
  version             := "1.2.5",
  scalaVersion        := "2.11.1",
  libraryDependencies ++= libraries,
  unmanagedJars in Compile ++= baseDirectory.value / "lib",
  unmanagedJars in Compile ++= baseDirectory.value / "src",
  unmanagedJars in Compile ++= baseDirectory.value / "test"
)

lazy val middle = project.settings(sharedSettings: _*)
lazy val back = project.settings(sharedSettings: _*).dependsOn(middle)

但是,当我尝试编译源代码时,出现以下错误:

  

对类文件&#39; ValueConverter.class&#39;中遇到的scala.reflect.runtime的错误符号引用。无法在包scala.reflect中访问术语运行时。当前类路径可能缺少scala.reflect.runtime的定义,或者ValueConverter.class可能是针对与当前类路径上找到的版本不兼容的版本编译的。

源代码按以下结构组织:

    • SRC
    • 测试
    • LIB
  • 中间
    • SRC
    • 测试
    • LIB
    • SRC
    • 测试
    • LIB

这里每个lib文件夹都包含一些手动维护的库(这就是我们想要转移到sbt的原因)。

关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:0)

最后,我放弃了尝试让编译器理解其他库。最后,我将使用sbt可用的依赖项添加到sbt托管库中。这显然效果很好。