我已经习惯了Spring和Maven项目,我在Maven中设置了一个多模块项目,项目包括:
app-web
app-models
app-services
app-common
我现在开始使用Play Framework 2(Scala)和sbt。
Play和sbt是否有类似的概念,我可以将所有这些项目组合成一个IntelliJ IDEA解决方案并且sbt?
答案 0 :(得分:8)
IntelliJ IDEA 13(最新版本为 13.1.3 )附带the built-in SBT support和the Ultimate edition adds Play support。
一个多模块的sbt项目可以导入到IDEA中,并且完全支持开箱即用,但它是否基于游戏(毕竟他们是sbt项目)。
您应该使用以下非常简单的构建文件 build.sbt 自行尝试(或者只生成play new
或更好的Play项目activator new [your-project-name] play-scala
):< / p>
lazy val a, b, c = project
以及以下project/build.properties
:
sbt.version=0.13.5
除了这两个上面的文件外,还需要一些东西来开始使用sbt / activator。
在IDEA中,使用File > Open...
打开项目,然后选择build.sbt
。
单击OK
以查看另一个窗口,您可以在其中为项目指定其他配置选项。然后模块出现了。
答案 1 :(得分:1)
您可能无法将它们分组到一个单独的项目中,但您可以确定有多个项目:
项目中的/ Build.scala:
{
val baseDependencies = Seq(
"org1" % "dep" % "latest.integration",
"org2" % "dep2" % "version"
)
val modelDependencies = baseDependencies ++ Seq("org3" % "dep3" % "version")
val appWeb = play.Project("app-web", "1.0", baseDependencies)
val appModels = play.Project("app-models", "1.0", modelDependencies, path = file("modules/models"))
val app = play.Project("app", "1.0", Nil).aggregate(appWeb, appModels)
}
在这种情况下,您将有一个名为&#34; app-web&#34;的常规应用程序,模块/模型下的模块appModels,没有项目目录和常规confs,如application.conf,以及聚合应用名为&#34; app&#34;。
当您启动播放控制台时,您可以通过键入&#34; project(name)&#34;切换到某些项目。例如,您可以键入&#34; project app-web&#34;然后&#34;想法&#34;为想法生成app-web项目解决方案。您也可以切换到项目&#34; app&#34;其下输入的所有命令都将应用于所有子项目。
有关详情,请查看此处的文档:http://www.playframework.com/documentation/2.2.x/SBTSubProjects