【问题标题】:How to set up multi-module build with reference to external local sbt project?如何参考外部本地 sbt 项目建立多模块构建?
【发布时间】:2014-08-07 09:57:43
【问题描述】:

我刚开始使用 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 也没有带来任何结果。

【问题讨论】:

    标签: scala playframework playframework-2.0 sbt


    【解决方案1】:

    改变

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

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

    并删除

    val main = root.dependsOn(core)
    

    reload 项目应该可以正常运行。

    【讨论】:

      猜你喜欢
      • 2013-12-20
      • 1970-01-01
      • 1970-01-01
      • 2013-06-26
      • 2013-11-07
      • 2014-12-26
      • 2014-05-22
      • 1970-01-01
      • 2015-04-25
      相关资源
      最近更新 更多