我刚开始使用 Scala 和 Play,我正在尝试使用 sbt 0.13.5 设置多构建
我的项目结构如下:

/AnormCypher
   -> /src
      ->/main
        ->/scala
          ->org.anormcypher[package]
              ->[Some classes]
   -> [other dirs/files]
   -> build.sbt
/sample
   -> /src
      ->/main
        ->/scala
          ->/controllers[package]
              ->Application.scala
              ->[Some classes]
   -> [other dirs/files]
   -> build.sbt

示例项目依赖于 AnormCypher 项目。我尝试在 this SO post 之后设置依赖项。我在示例中的 build.sbt 如下所示:
name := """sample"""

version := "1.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayScala)

scalaVersion := "2.11.1"

libraryDependencies ++= Seq(
  jdbc,
  anorm,
  cache,
  ws
)

lazy val core = ProjectRef(file("../AnormCypher"), "anormcypher")

val main = root.dependsOn(core)

当我进入我的控制台并输入
activator

sbt 能够加载项目。但是当我尝试编译源代码并尝试使用 org.anormcypher 包中的类时,它们无法解决:
object anormcypher is not a member of package org
[error] import org.anormcypher._
[error]            ^

运行 clean compile 也没有结果。

最佳答案

改变

lazy val root = (project in file(".")).enablePlugins(PlayScala)


lazy val root = (project in file(".")).enablePlugins(PlayScala).dependsOn(core)

并删除
val main = root.dependsOn(core)
reload 和项目应该可以正常工作。

关于scala - 如何引用外部本地 sbt 项目设置多模块构建?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24262952/

10-12 14:16
查看更多