我从一个我一直在研究的 Play Framework 2.x 项目 (Scala) 开始。
现在已经到了我想将项目分解为多个子项目和“兄弟”项目的地步。具体来说 - 我正在编写一个 Play REST API 服务,我还希望构建一个 Javascript 项目,就像该服务的“SDK”一样。
我“认为”使用 SBT 是可能的——但我被困住了,而且该领域的文档似乎很薄。
我想在一个“主”项目下有三个项目,它只不过是其他三个的容器以及主要构建文件所在的位置。
这将是这样的:
- 主要的
- 服务(播放 + scala)
- 通用文件(仅限 scala)
- sdk (javascript)
- 服务(播放 + scala)
当我尝试运行“播放”来构建我所拥有的层次结构时 - 我得到以下错误的变化:
[error] Not a valid command: play (similar: apply, last, alias)
[error] Not a valid project ID: play
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: play (similar: playConf, play-conf, playReload)
[error] play
[error] ^
当我有一个 Build.scala (在“主”项目中)时,如下所示:
object ApplicationBuild extends Build {
val appName = "my service"
val appVersion = "1.0-SNAPSHOT"
// tell the couchbase infrastructure to use the built in logger - which will get redirected to our main logger
System.setProperty("net.spy.log.LoggerImpl", "net.spy.memcached.compat.log.SunLogger")
// project dependencies
val appDependencies = Seq(
...
)
val common = Project("common", file("common"))
val service = play.Project(appName, appVersion, appDependencies, path = file("service")).settings(
scalacOptions ++= Seq("-feature") // turn on normal warnings and feature warnings with scalac
).dependsOn(common)
val sdk = Project("sdk", file("sdk"))
val base = Project("base", file("."))
.dependsOn(service)
.dependsOn(sdk)
.dependsOn(common)
}
我得到的文件夹层次结构是:
\
\service
\common
\sdk
\project
\target
build.sbt
我是否走在正确的轨道上,有人可以帮助我解决语法问题,还是我以完全错误的方式解决问题并且不能那样使用游戏?(直接使用 sbt?)。