【发布时间】:2014-09-16 19:24:33
【问题描述】:
我有一个多模块sbt项目,基本结构如下:
- ProjectX
-- project/ProjectXBuild.scala
-- moduleA
-- moduleB
-- moduleC
...
现在 project/ProjectXBuild.scala 的所有项目定义如下:
object ProjectXBuild extends Build {
lazy val root: Project = Propject( .... ) aggregate(moduleA, moduleB, moduleC)
lazy val moduleA: Project = Project(.....)
lazy val moduleB: Project = Project(.....)
...
我想做的是将 val 的 moduleA 和 moduleB 移动到单独的文件中,因为 ProjectXBuild 对象变得越来越大。
我可以将它们提取到 ModuleABuild.scala 到 ProjectX/project 目录中。但我想将它们移到一个单独的包中,例如ProjectX/项目/模块。这不起作用,似乎 sbt 的编译类路径上没有任何项目/子目录。
我尝试使用 sbt 的递归特性并将项目/模块目录附加到 ProjectX/project/project/build.sbt 文件中的类路径中来改变这一点,但我想要么我误解了项目/项目的目的,要么我做到了错了。
总而言之,是否有可能从 project/MassiveBuildFile.scala 中提取“东西”到例如project/a/ModuleABuild.scala 和 project/b/ModuleBBuild.scala 等?
感谢您的任何提示。我尝试在 github 上查看各种项目,但即使 https://github.com/sbt/sbt/blob/0.13/project/Sbt.scala 也是一大堆 scala 代码,这对我来说似乎有点无法接受。
【问题讨论】: