Playframework 使用Play和IntelliJ的多个项目
我有一个Play 2.2项目,正在使用IntelliJ 12。我通过从命令行执行Playframework 使用Play和IntelliJ的多个项目,playframework,intellij-idea,playframework-2.2,Playframework,Intellij Idea,Playframework 2.2,我有一个Play 2.2项目,正在使用IntelliJ 12。我通过从命令行执行playidea生成了项目文件。(play2插件太差了,我每次更改依赖项时都要这么做,考虑到我为“终极版”支付了游戏支持费用,这是非常了不起的)。不管怎样,现在的问题是,随着项目的发展,我希望有更多的模块化。我希望有几个项目可以编译成JAR。(我这样做的部分原因是scala编译时间使TDD变得非常痛苦。) 在eclipse中,我只需要创建一个工作区,然后让这些项目都挂在pom项目上。如果我在这里做同样的事情,我将如何
playidea
生成了项目文件。(play2插件太差了,我每次更改依赖项时都要这么做,考虑到我为“终极版”支付了游戏支持费用,这是非常了不起的)。不管怎样,现在的问题是,随着项目的发展,我希望有更多的模块化。我希望有几个项目可以编译成JAR。(我这样做的部分原因是scala编译时间使TDD变得非常痛苦。)
在eclipse中,我只需要创建一个工作区,然后让这些项目都挂在pom项目上。如果我在这里做同样的事情,我将如何获得play项目的intellij项目文件?它将只在play项目的目录中生成它们。我有一个play 2.2项目,我在工作中拆分了该项目。以下是我所做的: 文件夹结构: 项目:
project1
--project/Build.scala
project2
--project/Build.scala
project3
--project/Build.scala
project/Build.scala
下面是main Build.scala的外观:
import sbt._
import Keys._
object ApplicationBuild extends Build {
val appName = "test"
val appVersion = "test-0.1"
val ScalaVersion = "2.10.2"
val appDependencies = Seq(
)
lazy val project1 = RootProject(file("./project1/"))
lazy val project2 = RootProject(file("./project2/"))
lazy val project3 = RootProject(file("./project3/"))
lazy val mainProject = Project (
id = "test",
base = file("."),
settings = Project.defaultSettings).settings(
scalaVersion := ScalaVersion,
name := appName,
version := appVersion,
resolvers += "Typesafe Releases" at "http://repo.typesafe.com/typesafe/maven-releases/",
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/",
resolvers += "Typesafe snapshots" at "http://repo.typesafe.com/typesafe/snapshots/",
resolvers += "Sonatype snapshots" at "https://oss.sonatype.org/content/repositories/snapshots",
libraryDependencies ++= appDependencies
).aggregate(project1).aggregate(project2).aggregate(project3)
}
这将是将构建所有子项目的平均sbt构建文件
下面是project2的Build.scala文件的外观(在本例中,这是Play项目)
基本上,project2依赖于project1的代码
然后我将编辑主项目/plugins.sbt文件并添加sbt插件
此处的说明:(我使用快照版本)
然后使用genidea命令生成intellij项目
import sbt._
import Keys._
import play.Project._
object ApplicationBuild extends Build {
val appName = "project2"
val appVersion = "1.0"
val appDependencies = Seq(
jdbc
)
lazy val project1 = RootProject(file("../project1"))
lazy val main = play.Project(appName, appVersion, appDependencies).settings(
scalaVersion := "2.10.2",
resolvers += Resolver.url("typesafe", url("http://repo.typesafe.com/typesafe/releases/")),
resolvers += "Sonatype snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"
).dependsOn(project1)
}