Думаю Ctrl + Dработает только для фреймворка Play.
EnverOsmanov
Ответы:
44
В конфигурации по умолчанию ваши запуски происходят в той же JVM, что и sbt, поэтому вы не можете легко убить их по отдельности.
Если вы выполняете свой запуск в отдельной разветвленной JVM, как описано в Forking , вы можете убить эту JVM (любыми способами, предлагаемыми вашей операционной системой), не затрагивая JVM sbt:
Я пытаюсь это сделать. В частности, я реализовал: stackoverflow.com/questions/3868863/… но sbt все равно выходит, когда я нажимаю CTRL + C. Как убить только разветвленную JVM?
dsg
2
с помощью killиз командной строки, или в диспетчере задач (Windows), или
принудительном выходе,
После разветвления, чтобы убить все java, кроме sbt, выполните:kill -9 `ps -h | grep java | grep -v sbt-launch | grep -v grep | awk '{print $1}'`
dsg
1
Мне нравится эта идея, но, похоже, она не помогает. Я запускаю sbt 0.13.1 и добавляю эту строку в свой файл build.sbt ..
duplic1ejack
нужно убить с runпомощью CTRL + D
Тимофей
82
Из sbt версии 0.13.5 вы можете добавить в свой build.sbt
cancelable in Global:=true
Он определяется как «Разрешает (истина) или отключает (ложь) возможность прерывания выполнения задачи с помощью CTRL + C». в определении ключей
Ctrl+D
не работает.Ctrl + D
работает только для фреймворка Play.Ответы:
В конфигурации по умолчанию ваши запуски происходят в той же JVM, что и sbt, поэтому вы не можете легко убить их по отдельности.
Если вы выполняете свой запуск в отдельной разветвленной JVM, как описано в Forking , вы можете убить эту JVM (любыми способами, предлагаемыми вашей операционной системой), не затрагивая JVM sbt:
источник
kill
из командной строки, или в диспетчере задач (Windows), илиkill -9 `ps -h | grep java | grep -v sbt-launch | grep -v grep | awk '{print $1}'`
run
помощью CTRL + DИз sbt версии 0.13.5 вы можете добавить в свой build.sbt
Он определяется как «Разрешает (истина) или отключает (ложь) возможность прерывания выполнения задачи с помощью CTRL + C». в определении ключей
Если вы используете Scala 2.12.7+, вы также можете отменить компиляцию с помощью CTRL + C. Ссылка https://github.com/scala/scala/pull/6479
Сообщается о некоторых ошибках:
источник
Я нашел следующее полезным, когда у меня есть контроль над основным циклом приложения, запускаемого из sbt.
Я говорю sbt разветвляться при запуске приложения (в build.sbt):
Я также говорю sbt перенаправить stdin из оболочки sbt в приложение (в build.sbt):
Наконец, в основном потоке приложения я жду окончания файла на стандартном вводе и затем выключаю JVM:
Конечно, вы можете использовать любой поток для чтения stdin и завершения работы, а не только основной поток.
Наконец, запустите sbt, при необходимости переключитесь на подпроект, который вы хотите запустить, запустите.
Теперь, когда вы хотите остановить процесс, закройте его стандартный ввод, набрав CTRL-D в оболочке sbt.
источник
Подумайте об использовании SBT-Revolver . Мы используем его в нашей компании, и это действительно удобно. То, что вы просите, можно сделать с помощью:
Без необходимости настраивать файл build.sbt.
Вы можете использовать этот плагин, добавив:
К вашему проекту / plugins.sbt
источник