我正在尝试使用SBT开发Play 2.0 Web应用程序以及核心Java模块和其他Java客户端。是否可以通过正确构建Play应用程序的方式对其进行配置?
之前我开发了一个小型的一次性Play 2.0应用程序,但我没有直接使用SBT的经验。到目前为止,我已经提出了以下目录结构和project/Build.scala
文件。
root/
|---common/
|
|---client1/
|---client2/
|
|---webapp/
| |---app/
| |---conf/
| |---public/
|
|---project/
object ApplicationBuild extends Build {
val appVersion = "1.0-SNAPSHOT"
val appDependencies = Seq(
// Add your project dependencies here,
)
val common = Project("hi-common", file("common"))
val client1 = Project("hi-client1", file("client1")).dependsOn(common)
val client2 = Project("hi-client2", file("client2")).dependsOn(common)
val webapp = PlayProject("hi-webapp", appVersion, appDependencies, path = file("webapp"), mainLang = JAVA).settings(
// Add your own project settings here
).dependsOn(common)
val root = Project("hi", file(".")).aggregate(client1, client2, webapp)
}
正在运行sbt clean package
似乎适用于common
,client1
和client2
模块,但webapp
模块未打包到我的位置可以运行webapp/target/start
。
我可以做些什么来实现具有适当输出的单个构建?
答案 0 :(得分:7)
这里的问题是,仅仅运行package
目标还不足以为您生成启动脚本。它将组装完整的包Web应用程序,但没有一种启动它的方法。
我的目标是部署到Heroku,它可以方便地提供一个插件,为您生成这个启动脚本。默认情况下,使用Play 2.0 Web应用程序添加了插件包含的存储库,因此您只需要将用于构建的命令修改为sbt clean compile stage
,您将找到start
脚本在webapp/target/
文件夹中。