将sbt-web资源jar添加到sbt-native-packager的类路径中

时间:2015-05-20 08:56:57

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

我有一个多项目构建,我试图将带有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 /不是sbt.Project的成员

     

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

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

1 个答案:

答案 0 :(得分:2)

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

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)

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