我有以下构建:
lazy val stampleSearchProject = RootProject(file("../stample-search"))
lazy val main = play.Project(appName, appVersion, appDependencies)
.dependsOn(stampleSearchProject)
.settings(defaultScalaSettings:_*)
.settings( ......... )
stample-search 项目有一个 build.sbt 文件name := "stample-search"
我在 SBT 文档中发现:
交互式导航项目:在 sbt 交互式提示符下,键入项目以列出您的项目和项目以选择当前项目。当您运行诸如编译之类的任务时,它会在当前项目上运行。所以你不一定要编译根项目,你可以只编译一个子项目。
但是 SBT 文档不使用 RootProject 而是使用 Project 代替(这似乎需要在根项目中使用项目路径,我的意思是我不能使用../my-project
)
所以我尝试了这个。
[Stample] $ projects
[info] In file:/home/sebastien/Bureau/Stample/stample-web/
[info] * Stample
[info] In file:/home/sebastien/Bureau/Stample/stample-search/
[info] default-ccdbaa
所以它似乎列出了两个项目,但我想知道这个名字从哪里来default-ccdbaa
然后我尝试使用项目命令
[Stample] $ project Stample
[info] Set current project to Stample (in build file:/home/sebastien/Bureau/Stample/stample-web/)
[Stample] $ project default-ccdbaa
[error] Invalid project name 'default-ccdbaa' in build file:/home/sebastien/Bureau/Stample/stample-web/ (type 'projects' to list available projects).
[Stample] $ project stample-search
[error] Invalid project name 'stample-search' in build file:/home/sebastien/Bureau/Stample/stample-web/ (type 'projects' to list available projects).
它似乎不起作用。有人可以解释一下我的构建有什么问题吗?