8

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

我感兴趣的项目叫做website.

输入show website/web-assets:packageBinsbt 创建并显示带有资产的 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,并将其放在启动脚本的类路径中

4

1 回答 1

2

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

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

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

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

于 2015-06-04T17:00:08.180 回答