Come impostare SBT per riavviare a lungo in esecuzione processo server sulla modifica del codice?
-
01-10-2019 - |
Domanda
Con il comando sbt ~run
si ri-eseguire un bersaglio eseguibile per me ogni volta che un file sorgente cambia. Questo è bello, ma se il bersaglio è un processo server in esecuzione a lungo, SBT è sospesa fino alla termina bambino, così i cambiamenti di origine non hanno alcun effetto.
Mi piacerebbe avere monitor di SBT e ricompilare le mie fonti, anche mentre il codice di destinazione è in esecuzione, e riavviare il processo su una build di successo. Qualcuno ha cercato di impostare questa funzione?
Soluzione
(Ci scusiamo per la risposta post mortem)
https://github.com/spray/sbt-revolver è stato creato proprio per risolvere questo problema.
Altri suggerimenti
Questo non è possibile tramite la funzione integrata di "~". Il problema è che il "~" compito -prefixed deve completare. Se si tratta di un ascolto un'applicazione server su alcune porte, si dispone di fermarlo prima.
Forse si potrebbe creare il proprio compito o modificare il compito run
, per uccidere / chiudere l'applicazione in esecuzione (ad esempio l'invio di una magia uscita stringa sulla porta di ascolto?). Vedere questo per ulteriori informazioni:
http://code.google.com/p/simple- l'accumulo di strumento / wiki / CustomActions