所以我有一个目录结构
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对象。那么如何防止子项目被执行?
答案 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”。