【发布时间】:2013-12-24 22:18:54
【问题描述】:
我正在尝试创建一个多项目 SBT 构建定义。我在根项目上执行run 命令时遇到问题。
文件夹结构如下:
RootProjectFolder
|
|- build.sbt
|- project
|
|-Build.scala
|-plugins.sbt
|
| - play-webapp
Build.scala文件的内容是:
import sbt._
import Keys._
import play.Project._
object ApplicationBuild extends Build {
val appName = "project-name"
val appVersion = "0.1.0-SNAPSHOT"
lazy val root = Project(id = appName + "-root",
base = file(".")
).aggregate(webApp)
lazy val webApp = play.Project(
appName + "-website", appVersion, path = file("play-webapp")
)
}
当我启动 SBT 时,我收到以下消息:Set current project to project-name-root,这意味着已正确检测到根项目。
当我执行run 命令时,我收到以下错误消息
> run
java.lang.RuntimeException: No main class detected.
at scala.sys.package$.error(package.scala:27)
[trace] Stack trace suppressed: run last project-name-root/compile:run for the full output.
[error] (project-name-root/compile:run) No main class detected.
错误消息说根项目没有任何类是正确的,但 play-webapp 项目有。我假设结果是运行 play 应用程序。
如果我在run 之前输入project play-webapp,一切似乎都正常。
这是正确的行为吗?还是我做错了什么?
附:我正在使用 SBT 0.13 版和 scala 2.10.3 版
【问题讨论】:
标签: scala sbt playframework-2.2