Saya pikir Ctrl + Dhanya berfungsi untuk kerangka Play.
EnverOsmanov
Jawaban:
44
Dalam konfigurasi default, proses Anda terjadi di JVM yang sama dengan sbt yang dijalankan, jadi Anda tidak dapat dengan mudah mematikannya secara terpisah.
Jika Anda menjalankan dalam JVM terpisah dan bercabang, seperti yang dijelaskan di Forking , maka Anda dapat menghentikan JVM itu (dengan cara apa pun yang ditawarkan sistem operasi Anda) tanpa memengaruhi JVM sbt:
Saya mencoba melakukan ini. Secara khusus, saya telah menerapkan: stackoverflow.com/questions/3868863/… tetapi sbt masih keluar ketika saya melakukan CTRL + C. Bagaimana cara membunuh JVM bercabang saja?
dsg
2
dengan killdari baris perintah, atau di Task Manager (Windows), atau Force Quit atau Activity Monitor (Mac OS X), dll.
Seth Tisue
Setelah bercabang, untuk mematikan semua java kecuali sbt, jalankan:kill -9 `ps -h | grep java | grep -v sbt-launch | grep -v grep | awk '{print $1}'`
dsg
1
Saya suka ide ini, tetapi sepertinya tidak membantu. Saya menjalankan sbt 0.13.1 dan menambahkan baris ini ke dalam file build.sbt saya ..
dob1ejack
Anda harus membunuh rundengan CTRL + D
Timofey
82
Dari sbt versi 0.13.5 Anda dapat menambahkan ke build.sbt Anda
cancelable in Global:=true
Ini didefinisikan sebagai "Mengaktifkan (true) atau menonaktifkan (false) kemampuan untuk mengganggu eksekusi tugas dengan CTRL + C." dalam definisi Keys
Pertimbangkan untuk menggunakan sbt-revolver . Kami menggunakannya di perusahaan kami dan ini sangat berguna. Untuk apa yang Anda minta dapat dilakukan dengan:
reStart
reStop
Tanpa perlu mengkonfigurasi file build.sbt.
Anda dapat menggunakan plugin ini dengan menambahkan:
Ctrl+D
tidak bekerja.Ctrl + D
hanya berfungsi untuk kerangka Play.Jawaban:
Dalam konfigurasi default, proses Anda terjadi di JVM yang sama dengan sbt yang dijalankan, jadi Anda tidak dapat dengan mudah mematikannya secara terpisah.
Jika Anda menjalankan dalam JVM terpisah dan bercabang, seperti yang dijelaskan di Forking , maka Anda dapat menghentikan JVM itu (dengan cara apa pun yang ditawarkan sistem operasi Anda) tanpa memengaruhi JVM sbt:
sumber
kill
dari baris perintah, atau di Task Manager (Windows), atau Force Quit atau Activity Monitor (Mac OS X), dll.kill -9 `ps -h | grep java | grep -v sbt-launch | grep -v grep | awk '{print $1}'`
run
dengan CTRL + DDari sbt versi 0.13.5 Anda dapat menambahkan ke build.sbt Anda
Ini didefinisikan sebagai "Mengaktifkan (true) atau menonaktifkan (false) kemampuan untuk mengganggu eksekusi tugas dengan CTRL + C." dalam definisi Keys
Jika Anda menggunakan Scala 2.12.7+, Anda juga dapat membatalkan kompilasi dengan CTRL + C. Referensi https://github.com/scala/scala/pull/6479
Ada beberapa bug yang dilaporkan:
sumber
Saya telah menemukan yang berikut berguna ketika saya memiliki kendali atas loop utama aplikasi yang dijalankan dari sbt.
Saya memberi tahu sbt untuk bercabang saat menjalankan aplikasi (di build.sbt):
Saya juga memberi tahu sbt untuk meneruskan stdin dari shell sbt ke aplikasi (di build.sbt):
Akhirnya, di utas utama aplikasi, saya menunggu akhir file di stdin dan kemudian mematikan JVM:
Tentu saja, Anda dapat menggunakan utas apa pun untuk membaca stdin dan shutdown, bukan hanya utas utama.
Terakhir, mulai sbt, secara opsional beralih ke subproyek yang ingin Anda jalankan, jalankan.
Sekarang, ketika Anda ingin menghentikan proses, tutup stdin dengan mengetik CTRL-D di shell sbt.
sumber
Pertimbangkan untuk menggunakan sbt-revolver . Kami menggunakannya di perusahaan kami dan ini sangat berguna. Untuk apa yang Anda minta dapat dilakukan dengan:
Tanpa perlu mengkonfigurasi file build.sbt.
Anda dapat menggunakan plugin ini dengan menambahkan:
Ke proyek / plugins.sbt Anda
sumber