8

マルチプロジェクト ビルドがあり、sbt-web によって生成されたアセットを含む jar を起動スクリプトのクラスパスに追加しようとしています

私が興味を持っているプロジェクトは と呼ばれてwebsiteいます。

show website/web-assets:packageBinsbt と入力すると、アセットを含む jar が作成されて表示されます。を入れてみまし(managedClasspath in website) += website/web-assets:packageBinたが、コンパイルされません:

path/to/build.sbt:58: エラー: 値 / は sbt.Project のメンバーではありません

Web サイトの managedClasspath += website/web-assets:packageBin

ステージ タスクを実行するときにアセットを含む jar を作成し、それを起動スクリプトのクラスパスに配置するにはどうすればよいですか

4

1 に答える 1

2

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)

正確な構成がわからないため、これを直接テストしていません。ただし、これにより正しい方向が得られるはずです。

于 2015-06-04T17:00:08.180 に答える