sbt子项目的项目目录

时间:2016-02-22 05:28:41

标签: scala sbt

某个sbt子项目有自己的project目录吗?或者只有根项目可以使用.scala帮助文件来构建目录?以下是我目前的构建结构。 /my-project/sub-projects/sub-project-1/build.sbt无法访问/my-project/sub-projects/sub-project-1/SubProjectHelper.scala中定义的对象。

/my-project
  build.sbt
  /projects
    Helper.scala
  sub-projects
    sub-project-1
      build.sbt
      /projects
        SubProjectHelper.scala

更新 sub-project-1 / build.sbt

中的以下sbt定义
lazy val localhost = (project in file(".")).settings (
    name := """localhost""",
    version := Common.version,
    scalaVersion := Common.scalaVersion,
    libraryDependencies ++= Common.dependencies,
    libraryDependencies ++= Localhost.dependencies
)

失败并出现以下错误

    libraryDependencies ++= Localhost.dependencies
                            ^
sbt.compiler.EvalException: Type error in expression
    at sbt.compiler.Eval.checkError(Eval.scala:384)
    at sbt.compiler.Eval.compileAndLoad(Eval.scala:183)
    at sbt.compiler.Eval.evalCommon(Eval.scala:152)
    at sbt.compiler.Eval.evalDefinitions(Eval.scala:122)
    at sbt.EvaluateConfigurations$.evaluateDefinitions(EvaluateConfigurations.scala:271)
    at sbt.EvaluateConfigurations$.evaluateSbtFile(EvaluateConfigurations.scala:109)
    at sbt.Load$.sbt$Load$$loadSettingsFile$1(Load.scala:712)

Common在/my-project/projects/Common.scala中定义,没有任何问题。但是localhost是在/my-project/sub-projects/sub-project-1/projects/SubProjectHelper.scala中定义的,未在子项目-1 build.sb中正确解析

2 个答案:

答案 0 :(得分:0)

是的,他们可以,您甚至不需要sub-projects目录,只需将sub-project-1放在my-project目录中。

答案 1 :(得分:0)

通常(至少这是 scala / scala-seed.g8 最终的结果)项目子目录不会像你的目录那样以额外的 s 结束结构

您应该将projects重命名为project