2

所以我有一个这样的目录结构

EntireProject/
    -project/
    -mainProject/
    -subProject/
    -miscDir/

这是我的 Build.scala 文件

import sbt._
import Keys._
import play.Project._

object ApplicationBuild extends Build {

  val appName         = "SampleProject"
  val appVersion      = "1.0-SNAPSHOT"

  val appDependencies = Seq(
    // Add your project dependencies here,
    jdbc,
    anorm
  )

  val subProject = Project("sub-project",file("subProject"))


  val main = play.Project(appName, appVersion, appDependencies, path = file("mainProject"))
    .dependsOn(subProject)

}

当我运行“play run”时,play 也会运行子项目中的 App 对象。那么如何防止子项目被执行呢?

4

1 回答 1

0

我认为这是三件事之一或全部。一,它(可能)应该是

val main = play.Project(appName, appVersion, appDependencies, path = file("mainProject"))
.dependsOn(subProject).aggregate(subProject)

二,这很可能是问题所在,那个子项目应该真的是一个play.Project。Play 项目是 sbt 项目的扩展,play 实际上只是 sbt 的别名,它增加了 play 功能。所以像:

lazy val subProject = play.Project(appName + "subproject", 
    appVersion, appDependencies, path=file("subProject").settings(

)

三,通过打开播放控制台(在命令行键入play)仔细检查正确的项目被选为主项目。然后从游戏控制台内部,做什么

当您在构建中启用了子项目时,您可以专注于该项目并单独编译、测试或运行它。只需在 Play 控制台提示符中使用 projects 命令即可显示所有项目:

[my-first-application] $ projects
[info] In file:/Volumes/Data/gbo/myFirstApp/
[info]   * my-first-application
[info]     my-library

project SampleProject如果没有选中,则回车选择正确的。

[编辑:]此外,正如本文件所示,

默认项目是变量名按字母顺序排在第一位的项目。您可以通过将变量名称设为 aaaMain 来创建您的主项目。

好吧,将其命名为 aaaMain 是一种方式。但是只需调用你的主项目appName,然后调用你所有的子项目appName+“-subname”。

于 2013-08-27T17:55:40.467 回答