Автоматическая перезагрузка файлов в Scala/Lift/SBT .11?

В SBT .7 вы можете сделать

~jetty-run

чтобы ваши файлы автоматически компилировались и перезагружали веб-приложение всякий раз, когда что-то менялось. В SBT .11 вы можете сделать

~container:start

который также перекомпилирует файлы, но, похоже, не перезагружает веб-приложение каждый раз, когда что-то меняется. Скорее, я должен сделать

container:stop
container:start

чтобы увидеть изменения. Проблема в том, что для перезапуска требуется ~30s. Есть ли лучший способ сделать это? Копаясь в гугле и SBT, я не нашел ответов.

РЕДАКТИРОВАТЬ: делать

container:start
container:reload

каждый раз, когда что-то меняется, кажется, работает хорошо. Однако можно ли сделать так, чтобы это происходило автоматически в такой последовательности? Что-то типа:

~(container:start, container:reload)

который не работает, но я бы хотел, чтобы он работал


person Li Haoyi    schedule 17.12.2011    source источник
comment
Посмотрите, похож ли этот вопрос на stackoverflow.com/questions/8469503/   -  person fmpwizard    schedule 17.12.2011


Ответы (3)


Таким образом, получается, что ~ может принимать список команд, как было упомянуто в левой ссылке fmpwizard. Следовательно, вы можете сделать

~;container:start; container:reload /

делает правильно: каждый раз, когда я сохраняю файлы, он перекомпилирует необходимые файлы и перезагружает веб-приложение!

РЕДАКТИРОВАТЬ: должно быть container:reload, как уже упоминалось. Спасибо!

person Li Haoyi    schedule 17.12.2011
comment
+1, я полагаю, вы имели в виду ~;container:start; container:reload /, я получаю сообщение об ошибке при перезагрузке контейнера. Первый прекрасно справляется с задачей в проекте Scala/SBT/Spray... - person virtualeyes; 19.12.2011
comment
Есть ли способ сделать это, чтобы пользователь оставался в системе? Мне неудобно каждый раз входить в систему, когда я изменяю файл. - person Fiona Hopkins; 24.04.2012
comment
@phopkins да, вам нужно добавить расширенные сеансы в ваше приложение: assembla.com/spaces/liftweb /wiki/Расширенные_сеансы - person Roch; 19.07.2013

~container:start не нужен ,
вы можете использовать сначала container:start без ~ , а затем ~container:reload , чтобы container:start не перезапускался после каждого изменения кода .. я думаю

person Luigi Antonini    schedule 08.06.2012

Вы пробовали что-то вроде:

container:start
~compile
person David    schedule 17.12.2011
comment
Пробовал это; он компилирует его каждый раз, но не перезагружает приложение =( - person Li Haoyi; 18.12.2011