Ошибка компиляции Playframework 2.5.4 sbt less

Наконец-то у меня появилось время настроить новый проект play (версия 2.5.4) с активатором по шаблону play-java. В моем build.sbt я добавил следующую строку для использования начальной загрузки с меньшим количеством, как описано здесь.

"org.webjars" % "bootstrap" % "3.3.7"

Я также создал структуру папок, как описано в документации.

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

Это просто main.less, содержащий следующие строки:

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

body {
  color: aqua;
}

Теперь, когда я вызываю activator run, activator stage или activator dist, все компилируется без ошибок, а при вызове localhost:9000 загрузчик включается в main.css, как и ожидалось.

EDIT: сначала я думал, что следующая проблема возникает только с 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 из внешней библиотеки во время компиляции. активатор работает нормально.

Кто-нибудь еще сталкивался с подобной проблемой или знает, что может вызвать эту ошибку?


person devDomm    schedule 10.08.2016    source источник
comment
Что произойдет, если вы запустите sbt stage локально вместо activator stage?   -  person codefinger    schedule 10.08.2016
comment
Я смог воспроизвести эту проблему локально, следуя вашим инструкциям. Это будет означать, что чего-то не хватает. Можете ли вы проверить, что весь ваш код привязан к Git? Возможно, Heroku не получает то, что у вас есть локально.   -  person codefinger    schedule 10.08.2016
comment
большое спасибо. я проверю еще раз, если чего-то не хватает, и попытаюсь также воспроизвести это локально   -  person devDomm    schedule 11.08.2016


Ответы (1)


Обычно во время сборки в target/web/web-modules/main/webjars/lib/bootstrap/less/bootstrap.less следует извлекать меньшее количество файлов веб-файла начальной загрузки.

Но файл Jar версии, которую вы используете, пропускает эти файлы:

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

В версии 3.3.4 существует меньше файлов.

person wobu    schedule 11.08.2016