如何在IntelliJ IDEA中导入多模块项目?

时间:2014-04-07 00:27:14

标签: intellij-idea playframework-2.0 sbt

我已经习惯了Spring和Maven项目,我在Maven中设置了一个多模块项目,项目包括:

app-web
app-models
app-services
app-common

我现在开始使用Play Framework 2(Scala)和sbt

Play和sbt是否有类似的概念,我可以将所有这些项目组合成一个IntelliJ IDEA解决方案并且sbt?

2 个答案:

答案 0 :(得分:8)

IntelliJ IDEA 13(最新版本为 13.1.3 )附带the built-in SBT supportthe 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

enter image description here

单击OK以查看另一个窗口,您可以在其中为项目指定其他配置选项。然后模块出现了。

enter image description here

答案 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