1
我有以下我需要開發:多項目建立
- playframework應用
- 阿卡HTTP
- 共享庫
無論是播放和阿卡應用程序所需要的#3共享庫。
是否有可能在一個單一的sbt項目中創建2個不同的版本?
所以當我運行遊戲構建時,它不會包含akka,而當我運行akka構建時,它將不包含遊戲代碼。
我只是想避免打開和管理2個不同的項目。
我有以下我需要開發:多項目建立
無論是播放和阿卡應用程序所需要的#3共享庫。
是否有可能在一個單一的sbt項目中創建2個不同的版本?
所以當我運行遊戲構建時,它不會包含akka,而當我運行akka構建時,它將不包含遊戲代碼。
我只是想避免打開和管理2個不同的項目。
我用的是多項目的結構與3個子項目:
根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.播放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"
)
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 ...
現在我們可以在當前的子項目上運行任務。