我正在使用spray创建一个单页应用程序,并且无法让sbt-web处理我的任何输入。我从WebJars开始,因为https://github.com/sbt/sbt-web/blob/master/README.md说:
关于公共和公共测试文件夹的最后一件事...... 项目所依赖的任何WebJar将自动提取到这些文件夹中,例如目标/网络/公共/ LIB / jquery的/的jquery.js。
但是,我在目标文件夹中看不到这样的“web”文件夹。我想也许WebJars的例子太复杂了,所以我改为将jquery.js文件添加到资产文件夹的根目录,并设置sbt-uglify对其进行一些处理。然而,我仍然没有看到证据表明SbtWeb正在发挥作用。我已经运行sbt --debug clean run
并为输出来获取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
个文件夹。有什么想法吗?
参考文献:
答案 0 :(得分:2)
那会学习我。我使用的是旧版本的sbt-web。当我将其更新到最新版本时,它会按预期工作。
本课程不是复制/粘贴这样的片段:
addSbtPlugin(" com.typesafe.sbt"%" sbt-web"%" 1.0.2")
来自网络。但是,请通过以下方法之一手动查找最新版本:
在SBT中插入一些虚假版本,并查看SBT试图查看和失败的输出:
[warn] module not found: com.typesafe.sbt#sbt-web;3.1.2
[warn] ==== typesafe-ivy-releases: tried
[warn] http://repo.typesafe.com/typesafe/ivy-releases/com.typesafe.sbt/sbt-web/scala_2.10/sbt_0.13/3.1.2/ivys/ivy.xml
[warn] ==== sbt-plugin-releases: tried
[warn] http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-web/scala_2.10/sbt_0.13/3.1.2/ivys/ivy.xml
我很肯定有更好的方法可以找到我不知道的最新版本的东西。对于那些比我更有经验的人,请以更好的方式发表评论。