4

私はかなり複雑なプロジェクトを持っています.Play、Scala.js、その他のさまざまなおもちゃを使用しています。build.sbt ですべてのパーツを動作させることができていないので、とりあえず Build.scala でビルドします。(これについては、sbt メーリング リストで個別に話しました。)

さて、私は Play の新しいフィンガープリンティング機能を利用したいと思います。つまり、sbt-web で遊んでみるということです。しかし、私は明らかに何か間違ったことをしています。通常のパイプライン プラグインを plugins.sbt に追加しました。

addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.1")

addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.0.0")

addSbtPlugin("com.typesafe.sbt" % "sbt-gzip" % "1.0.0")

しかし、プロジェクトの JVM 側に SbtWeb を追加しようとしたとき:

lazy val scalajvm = Project(
  id = "scalajvm",
  base = file("scalajvm")
) enablePlugins (play.PlayScala, SbtWeb) settings (scalajvmSettings: _*) aggregate (scalajs)

sbt は、SbtWeb を認識しておらず、ロードできないと不満を漏らしていました。奇数。明示的なインポートを追加しました:

import com.typesafe.sbt.web.SbtWeb

それはそれをロードすることを可能にしました。次に、パイプライン自体を機能させようとしました。

pipelineStages := Seq(digest, gzip),

今度は、pipelineStages を認識していないと不平を言いました。繰り返しますが、明示的なインポートを追加しましたが、何か間違っているのではないかと疑っています。

import com.typesafe.sbt.web.Import.pipelineStages

これで次のステップに進みます: ダイジェストについて知らないと文句を言っています -- これは完全に不思議です。

助言がありますか?私の推測では、プラグイン レベルで何かが欠けていると思いますが、それが何であるかはわかりません。私が見つけることができるすべてのドキュメントは上記をリストしているだけですが、すべてbuild.sbtを想定していると思います。(はい、build.properties で sbt 0.13.5 を指定し、plugins.sbt で Play 2.3.5 を指定しています。)

4

2 に答える 2

0

プロジェクトでも Build.scala の sbt-web を使用しています。次のインポートが必要になります。

 import com.typesafe.sbt.digest.Import._
 import com.typesafe.sbt.gzip.Import._
 import com.typesafe.sbt.rjs.Import._
 import com.typesafe.sbt.web.Import._

各パイプライン オブジェクト ( type の値TaskKey[Pipeline.Stage]) は、対応するモジュールの Import オブジェクトから取得されます。なぜこのような構造になっているのか、私にはわかりません。私も最初にこれを機能させたとき、これに必要なインクルードについて同じ疑問を抱いたことを覚えています。部分的には sbt の自動プラグイン機能をサポートするために、そのように構成されていると思います。

于 2014-12-15T21:11:00.367 に答える