add sbt-web resources jar to classpath of sbt-native-packager

464 views Asked by At

I have a multi-project build and I'm trying to add the jar with assets generated by sbt-web to the classpath of the launch script

The project I'm interested in is called website.

typing show website/web-assets:packageBin in sbt creates and shows the jar with the assets. I tried putting in (managedClasspath in website) += website/web-assets:packageBin, but that doesn't compile:

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

managedClasspath in website += website/web-assets:packageBin

How can I create the jar with assets when I run the stage task, and place it on the classpath of the launch script

1

There are 1 answers

0
Muki On BEST ANSWER

You are mixing sbt-console commands with build.sbt commands.

The sbt-web docs give a clear example how you do it for a single project:

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

So now we do the same thing for a multi-module build. Assuming you have a build.sbt that looks like this

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)

I have not directly tested this as I don't know your exact configuration. However this should give you the right direction.