2017-01-07 9 views
1

を構築します#3共有ライブラリ。マルチプロジェクトは、私が開発する必要があり、以下のいる

1つのsbtプロジェクトで2つの異なるビルドを作成することはできますか?

再生ビルドを実行すると、akkaは含まれません。また、akkaビルドを実行すると、再生コードは含まれません。

私はちょうど2つの異なるプロジェクトのオープンと管理を避けたいと思います。

私は3つのサブプロジェクトとそのマルチプロジェクトの構造を使用

答えて

1

ルート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) 

プレイアプリケーションplayJavaと、単純なJavaプロジェクトrunnableApp

の間で共有されるべきmyLibライブラリーを、 1.再生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

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

、我々はプロジェクトを選択することができます。例:

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

タスクオーバーカレントサブプロジェクトを実行できます。

関連する問題