2017-01-07 2 views
1

я следующее: Мне нужно разработать:несколько проектов с 2 различными строят

  1. playframework приложение
  2. Akka HTTP
  3. разделяемой библиотека

Как играть и Акка приложению нужно # 3.

Возможно ли создать 2 разных сборки в одном проекте sbt?

Поэтому, когда я запускаю игру, она не будет включать акку, и когда я запустим сборку akka, она не будет содержать код воспроизведения.

Я просто хочу избежать открытия и управления двумя различными проектами.

ответ

1

я использую эту многоступенчатую структуру проекта с 3 подпроекта:

Root 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) 

Где myLib библиотека, которая должна быть разделена между приложением playJava игры и простой проект Java runnableApp

1. Play 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" 
) 

В SBT сессии, мы можем выбрать проект. Пример:

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

Теперь мы можем запускать задачу по текущему подпроекту.

Смежные вопросы