sbt 子项目的项目目录
Posted
技术标签:
【中文标题】sbt 子项目的项目目录【英文标题】:project directory for sbt sub-projects 【发布时间】:2016-06-03 10:46:43 【问题描述】: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 中定义的,在 sub-project-1 build.sbt 中没有正确解析
【问题讨论】:
【参考方案1】:是的,他们可以,甚至不需要sub-projects
目录,只需将sub-project-1
放在my-project
目录中即可。
【讨论】:
我已更新问题以添加更多信息。你能告诉我出了什么问题吗?【参考方案2】:通常(至少这是 scala/scala-seed.g8 的结尾)项目子目录不会像您的目录结构那样以额外的 s 结尾。
您应该将projects
重命名为project
。
【讨论】:
【参考方案3】:很遗憾,答案是否定的。如所见here
子项目中不能有项目子目录或 project/*.scala 文件。 foo/project/Build.scala 将被忽略。
【讨论】:
以上是关于sbt 子项目的项目目录的主要内容,如果未能解决你的问题,请参考以下文章
如何在 sbt 子项目 build.sbt 文件中获取对当前项目的引用