【问题标题】:Multi project with 2 different builds具有 2 个不同构建的多项目
【发布时间】:2017-05-21 22:05:41
【问题描述】:

我有以下需要开发:

  1. playframework 应用程序
  2. 阿卡 http
  3. 共享库

play 和 akka 应用都需要 #3 共享库。

是否可以在一个 sbt 项目中创建 2 个不同的构建?

所以当我运行 play build 时,它不会包含 akka,而当我运行 akka build 时,它不会包含 play 代码。

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

【问题讨论】:

    标签: playframework sbt akka


    【解决方案1】:

    我使用带有 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 库,应该在 play 应用程序 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"
    )
    

    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 ...
    

    现在我们可以在当前子项目上运行任务了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-05
      • 2016-04-25
      • 2021-05-28
      • 2011-02-26
      • 2013-09-26
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多