如何防止Play运行子项目的主要方法

时间:2013-08-27 16:57:21

标签: scala sbt playframework-2.1

所以我有一个目录结构

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对象。那么如何防止子项目被执行?

1 个答案:

答案 0 :(得分:0)

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

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

二,这很可能就是问题,那个子项目应该真的是一个游戏。项目。播放项目是sbt项目的扩展,播放实际上只是sbt的别名,它增加了播放功能。如下所示:

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以选择正确的一个(如果未选中)。

[编辑:]此外,正如此document所示,

  

默认项目是变量名首先按字母顺序排列的项目。您可以通过使其变量名称为aaaMain来创建主项目。

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