Я использую спрей для создания одностраничного приложения и не могу получить sbt-web для обработки каких-либо из моих входов. Я начал с WebJars, потому что, https://github.com/sbt/sbt-web/blob/master/README.md говорит:Минимальный sbt-web конвейер без воспроизведения
Одна последняя вещь, в отношении папок государственных и общественно-тест ... любой WebJar зависело от проекта будет автоматически извлекаются в эти папки например цель/веб/открытый/Библиотека/JQuery/jquery.js.
Однако в целевой папке я не вижу такой «веб-папки». Я подумал, что, возможно, WebJars был слишком сложным для примера, поэтому я вместо этого добавил файл jquery.js в корень папки с ресурсами и настроил sbt-uglify, чтобы выполнить некоторую обработку. Тем не менее, я не вижу никаких доказательств того, что SbtWeb работает. Я запустил sbt --debug clean run
и grepped вывод для любого вывода из SbtWeb или Uglify, но никаких ошибок или предупреждений и не могу найти что-либо по SbtWeb или Uglify. Просто признание того, что это, кажется, "вывести" плагины:
[debug] deducing auto plugins based on known facts [debug] :: sorting:: found:
...
[debug] :: sorted deduced result: List(sbt.plugins.CorePlugin, com.typesafe.sbt.web.SbtWeb, com.typesafe.sbt.jse.SbtJsEngine, net.ground5hark.sbt.concat.SbtConcat, sbt.plugins.IvyPlugin, com.typesafe.sbt.jse.SbtJsTask, sbt.plugins.JvmPlugin, com.typesafe.sbt.uglify.SbtUglify, sbt.plugins.JUnitXmlReportPlugin)
Вот моя структура каталогов:
./build.sbt
./project/plugins.sbt
./src/main/assets/js/jquery.js
./src/main/resources/html/uikit/login.html
./src/main/scala/Boot.scala
./src/main/scala/main.scala
Вот мой проект/plugins.sbt:
resolvers += Resolver.sonatypeRepo("releases")
addSbtPlugin("com.typesafe.sbt" % "sbt-web" % "1.0.2")
addSbtPlugin("net.ground5hark.sbt" % "sbt-concat" % "0.1.8")
addSbtPlugin("com.typesafe.sbt" % "sbt-uglify" % "1.0.3")
Вот мой ./build.sbt:
organization := "com.test123.spray"
version := "0.1"
scalaVersion := "2.11.6"
scalacOptions := Seq("-unchecked", "-deprecation", "-encoding", "utf8")
libraryDependencies ++= {
val akkaV = "2.3.9"
val sprayV = "1.3.3"
Seq(
"io.spray" %% "spray-can" % sprayV,
"io.spray" %% "spray-routing" % sprayV,
"io.spray" %% "spray-testkit" % sprayV % "test",
"com.typesafe.akka" %% "akka-actor" % akkaV,
"com.typesafe.akka" %% "akka-testkit" % akkaV % "test",
// client side dependencies
"org.webjars" % "jquery" % "2.1.4",
"org.webjars" % "uikit" % "2.24.2"
)
}
lazy val root = (project.in(file("."))).enablePlugins(SbtWeb)
pipelineStages := Seq(uglify)
includeFilter in uglify := GlobFilter("js/*.js")
Вот что корень моей ./target папки выглядит следующим образом:
resolution-cache/
scala-2.11/
streams/
Нет ./target/web
папки. Любые идеи почему?
Ссылки:
- https://github.com/sbt/sbt-web/blob/master/README.md
- http://mariussoutier.com/blog/2014/12/07/understanding-sbt-sbt-web-settings/