2017-01-07 7 views
1

ich habe folgendes ich entwickeln müssen:Multi-Projekt mit 2 verschiedenen baut

  1. playframework App
  2. akka http
  3. Shared Library

Sowohl das Spiel und akka App müssen die # 3 gemeinsame Bibliothek.

Ist es möglich, 2 verschiedene Builds in einem einzigen sbt-Projekt zu erstellen?

Also, wenn ich das Spiel build ausführen wird es nicht akka enthalten, und wenn ich den akka Build ausführen wird es nicht den Spielcode enthalten.

Ich möchte nur vermeiden, 2 verschiedene Projekte zu öffnen und zu verwalten.

Antwort

1

ich, dass Multi-Projektstruktur mit drei Teilprojekten:

Wurzel build.sbt:

lazy val myLib = (project in file("my-lib")) 

lazy val playJava = (project in file("play-java")) 
    .enablePlugins(PlayJava) 
    .dependsOn(myLib) 

lazy val runnableApp = (project in file("runnable-app")) 
    .dependsOn(myLib) 

Wo myLib Bibliothek, die zwischen Spiel Anwendung playJava und einfachem Java-Projekt runnableApp

geteilt werden sollen 1. Spielen build.sbt:

name := """play-java""" 

version := "1.0-SNAPSHOT" 

scalaVersion := "2.11.7" 

2. runnableApp build.sbt:

name := """runnable-app""" 

version := "1.0" 

scalaVersion := "2.11.6" 

mainClass in assembly := Some("com.example.Hello") 

assemblyOption in assembly := (assemblyOption in assembly).value.copy(includeScala = false) 

libraryDependencies ++= Seq(
    "junit"    % "junit"   % "4.12" % "test", 
    "com.novocode"  % "junit-interface" % "0.11" % "test" 
) 

3. MyLib build.sbt:

name := """my-lib""" 

version := "1.0" 

scalaVersion := "2.11.7" 

libraryDependencies ++= Seq(
    "junit"    % "junit"   % "4.12" % "test", 
    "com.novocode"  % "junit-interface" % "0.11" % "test" 
) 

In sbt-Sitzung können wir Projekt auswählen. Beispiel:

$ project playJava 
[info] Set current project to play-java ... 

Jetzt können wir Task über aktuelle Teilprojekt ausführen.

Verwandte Themen