Playframework 2.5.4 sbt less 编译失败

Playframework 2.5.4 sbt less compilation fails

我终于有时间使用 "play-java" 模板与激活器建立一个新的游戏(版本 2.5.4)项目。 在我的 build.sbt 中,我添加了以下行以使用 bootstrap with less,如 here.

所述
"org.webjars" % "bootstrap" % "3.3.7"

我还创建了文档中描述的文件夹结构

app
 |---> assets
           |---> stylesheets

只有一个简单的 main.less 包含以下几行:

@import "lib/bootstrap/less/bootstrap.less";

body {
  color: aqua;
}

现在,当我调用 activator runactivator stageactivator dist 时,一切都编译无误,并且在调用 localhost:9000 时bootstrap 按预期包含在 main.css 中。

编辑: 首先我认为以下问题只发生在 heroku 上,但是在我的本地机器上使用 sbt clean compile stage 时我也得到以下错误:

[info] LESS compiling on 1 source(s)
[error] /tmp/scala_buildpack_build_dir/app/assets/stylesheets/main.less:1: 'lib/bootstrap/less/bootstrap.less' wasn't found. Tried - /tmp/scala_buildpack_build_dir/app/assets/stylesheets/lib/bootstrap/less/bootstrap.less,/tmp/scala_buildpack_build_dir/app/assets/lib/bootstrap/less/bootstrap.less,/tmp/scala_buildpack_build_dir/target/web/less/main/lib/bootstrap/less/bootstrap.less,/tmp/scala_buildpack_build_dir/public/lib/bootstrap/less/bootstrap.less,/tmp/scala_buildpack_build_dir/target/web/web-modules/main/webjars/lib/bootstrap/less/bootstrap.less,lib/bootstrap/less/bootstrap.less
[error] @import "lib/bootstrap/less/bootstrap.less";     
[error] ^
[error] one error found
[error] (web-assets:less) com.typesafe.sbt.web.CompileProblemsException
[error] Total time: 5 s, completed Aug 10, 2016 2:53:01 PM
!     ERROR: Failed to run sbt!

似乎 sbt 的 less 编译无法处理编译时来自外部库的 bootstrap.less 的包含。 激活器 工作正常。

有没有其他人遇到过类似的问题,或者知道是什么导致了这个错误?

正常情况下,bootstrap webjar 的 less 文件应该在构建期间提取到 target/web/web-modules/main/webjars/lib/bootstrap/less/bootstrap.less 中。

但是您使用的版本的 Jar 文件缺少这些文件:

bootstrap-3.3.7.jar\META-INF\resources\webjars\bootstrap.3.7\ css fonts js webjars-requirejs.js webjars-requirejs.js.gz

在版本3.3.4中存在较少的文件。