我有一个Play 2.2项目并且正在使用IntelliJ 12.我通过从命令行执行play idea
来生成项目文件。 (play2插件非常糟糕,每次我改变一个依赖时我都要这么做,考虑到我支付'终极'以获得Play支持,这是非常了不起的。无论如何,现在的问题是,随着项目的发展,我希望拥有更多的模块化。我想有几个项目编译成罐子。 (我这样做的部分原因是因为scala编译时间使得TDD难以忍受。)
在eclipse中,我只是创建一个工作区,然后让这些项目完全脱离pom项目。如果我在这里做同样的事情,我将如何获得播放项目的intellij项目文件?它只会在播放项目的目录中生成它们。
答案 0 :(得分:1)
我有一个Play 2.2项目,我在这里分工就是我做的:
文件夹结构:
项目:
project1
--project/Build.scala
project2
--project/Build.scala
project3
--project/Build.scala
project/Build.scala
以下是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项目)
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)
}
基本上,project2依赖于project1的代码。
然后我会编辑主项目/ plugins.sbt文件并添加sbt插件 这里的说明:https://github.com/mpeltonen/sbt-idea(我使用快照版本)
然后使用gen-idea命令生成intellij项目。