У меня есть 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, который построит весь ваш подпроект s.
Вот как Build.scala файл project2 выглядит как (в данном случае это проект 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 файл и добавьте СБТ Plugin инструкции здесь: https://github.com/mpeltonen/sbt-idea (я использую версию снимка)
Затем генерировать проект IntelliJ с помощью команды генераторной идеи.