【问题标题】:add sbt-web resources jar to classpath of sbt-native-packager将 sbt-web 资源 jar 添加到 sbt-native-packager 的类路径
【发布时间】:2015-08-01 09:59:59
【问题描述】:

我有一个多项目构建,我正在尝试将带有 sbt-web 生成的资产的 jar 添加到启动脚本的类路径中

我感兴趣的项目叫website

在 sbt 中键入 show website/web-assets:packageBin 会创建并显示带有资产的 jar。我尝试输入(managedClasspath in website) += website/web-assets:packageBin,但编译失败:

path/to/build.sbt:58: error: value / is not a member of sbt.Project

网站中的 managedClasspath += website/web-assets:packageBin

如何在运行阶段任务时创建带有资产的 jar,并将其放置在启动脚本的类路径中

【问题讨论】:

    标签: sbt sbt-native-packager sbt-web


    【解决方案1】:

    您正在将 sbt-console 命令与 build.sbt 命令混合使用。

    sbt-web docs 给出了一个清晰的例子,你如何为单个项目做到这一点:

    (managedClasspath in Runtime) += (packageBin in Assets).value
    

    所以现在我们为多模块构建做同样的事情。假设你有一个看起来像这样的build.sbt

    val root = (project in ".")
          .aggregate(common, website)
    
    val common = (project in "commons")
          .settings(
             libraryDependencies ++= Seq(...),
             ...
          )
    
    val website = (project in "commons")
          .enablePlugins(JavaServerAppPackaging, SbtWeb)
          .settings(
             // ------ You configure it like a single module project 
             (managedClasspath in Runtime) += (packageBin in Assets).value
             // ----------------------------------------------------
          )
          .dependsOn(common)
    

    我没有直接测试过这个,因为我不知道你的确切配置。然而,这应该给你正确的方向。

    【讨论】:

      猜你喜欢
      • 2016-11-04
      • 2016-07-27
      • 2013-12-24
      • 2014-04-23
      • 2016-08-17
      • 2017-02-03
      • 2014-10-22
      • 2014-01-05
      • 2021-07-21
      相关资源
      最近更新 更多