import Common._ import play.Play.autoImport._ import play.PlayScala import Dependencies._ import sbt.Keys._ import sbt._ name := "mainApp" appSettings mainAppSettings libraryDependencies ++= Seq( ws, gson, scalaTest, jodaTime, mockitoAll ) lazy val root = project.in(file(".")).enablePlugins(PlayScala) .dependsOn( precog, engine, codeParser, repositorySystem, frameworkDependency, dependencyBuilder, enginePlugins, services, webServices, databaseTestDependency ).aggregate( precog, engine, codeParser, repositorySystem, framework, dependencyBuilder, enginePlugins, services, webServices ) lazy val precog = project.in(file("components/precog")) .dependsOn(frameworkDependency, dependencyBuilder) .aggregate(framework, dependencyBuilder) lazy val engine = project.in(file("components/engine")) .dependsOn(frameworkDependency, dependencyBuilder) .aggregate(framework, dependencyBuilder) lazy val codeParser = project.in(file("components/codeParser")) .dependsOn(frameworkDependency, dependencyBuilder) .aggregate(framework, dependencyBuilder) lazy val repositorySystem = project.in(file("components/repositorySystem")) .dependsOn(frameworkDependency, dependencyBuilder) .aggregate(framework, dependencyBuilder) lazy val enginePlugins = project.in(file("components/enginePlugins")) .dependsOn(frameworkDependency) .aggregate(framework) lazy val dependencyBuilder = project.in(file("components/dependencyBuilder")) .dependsOn(frameworkDependency) .aggregate(framework) lazy val services = project.in(file("components/services")) .dependsOn(databaseDependency, frameworkDependency, rules) .aggregate(framework, rules) lazy val rules = project.in(file("components/rules")) .dependsOn(databaseDependency, enginePlugins, dependencyBuilder, frameworkDependency) .aggregate(database, enginePlugins, dependencyBuilder, framework) lazy val database = project.in(file("components/database")) .dependsOn(frameworkDependency) .aggregate(framework) lazy val framework = project.in(file("components/framework")) lazy val webServices = project.in(file("components/webServices")).enablePlugins(PlayScala) .dependsOn(services) .aggregate(services) lazy val databaseDependency = database % "compile->compile;test->test" lazy val databaseTestDependency = database % "test->test" lazy val frameworkDependency = framework % "compile->compile;test->test"