Playframework 具有2个不同版本的多项目

Playframework 具有2个不同版本的多项目,playframework,sbt,akka,Playframework,Sbt,Akka,我需要开发以下内容: playframework应用程序 阿克卡http 共享库 play和akka应用程序都需要#3共享库 是否可以在一个sbt项目中创建两个不同的版本 因此,当我运行play build时,它不会包含akka,当我运行akka build时,它不会包含play代码 我只想避免打开和管理两个不同的项目。我使用包含3个子项目的多项目结构: Rootbuild.sbt: lazy val myLib = (project in file("my-lib")) lazy val p

我需要开发以下内容:

  • playframework应用程序
  • 阿克卡http
  • 共享库
  • play和akka应用程序都需要#3共享库

    是否可以在一个sbt项目中创建两个不同的版本

    因此,当我运行play build时,它不会包含akka,当我运行akka build时,它不会包含play代码


    我只想避免打开和管理两个不同的项目。

    我使用包含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)
    
    name := """play-java"""
    
    version := "1.0-SNAPSHOT"
    
    scalaVersion := "2.11.7"
    
    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"
    )
    
    name := """my-lib"""
    
    version := "1.0"
    
    scalaVersion := "2.11.7"
    
    libraryDependencies ++= Seq(
      "junit"             % "junit"           % "4.12"  % "test",
      "com.novocode"      % "junit-interface" % "0.11"  % "test"
    )
    
    其中
    myLib
    library,应该在play应用程序
    playJava
    和简单java项目
    runnableApp

    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)
    
    name := """play-java"""
    
    version := "1.0-SNAPSHOT"
    
    scalaVersion := "2.11.7"
    
    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"
    )
    
    name := """my-lib"""
    
    version := "1.0"
    
    scalaVersion := "2.11.7"
    
    libraryDependencies ++= Seq(
      "junit"             % "junit"           % "4.12"  % "test",
      "com.novocode"      % "junit-interface" % "0.11"  % "test"
    )
    
    2.runnableApp
    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)
    
    name := """play-java"""
    
    version := "1.0-SNAPSHOT"
    
    scalaVersion := "2.11.7"
    
    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"
    )
    
    name := """my-lib"""
    
    version := "1.0"
    
    scalaVersion := "2.11.7"
    
    libraryDependencies ++= Seq(
      "junit"             % "junit"           % "4.12"  % "test",
      "com.novocode"      % "junit-interface" % "0.11"  % "test"
    )
    
    3.myLib
    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)
    
    name := """play-java"""
    
    version := "1.0-SNAPSHOT"
    
    scalaVersion := "2.11.7"
    
    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"
    )
    
    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 ...
    
    现在我们可以在当前子项目上运行任务