Io uso sbt
nel modo seguente: eseguo ~ test:compile
in sbt e poi lavoro in IDE, osservando occasionalmente se il progetto è ancora compilato, perché il compilatore di presentazioni IDE tende a essere bacato. Quando ho il codice git pull
, potrebbero esserci dei cambiamenti nei file project/
, quindi voglio ricaricare. C'è un modo, come guardare sia i file di origine che i file di progetto, quindi quando c'è un cambiamento nei file di progetto, ottengo effettivamente l'aggiornamento?Guarda per i file di progetto anche
risposta
Si può effettivamente non utilizzare ~ <task>
e farlo ricostruire il progetto stesso in questo momento, perché ~ <task>
ha bisogno di leggere la definizione di compilazione in sé a determinare:
- file quale fonte di guardare
- Come eseguire l'obiettivo.
Quello che stai facendo è modificare la configurazione del progetto/modifiche. Ciò richiede un completo reload
o reboot
di sbt per inserire la nuova configurazione.
Quindi, a partire da 0.13 sbt, questo non è possibile. È possibile possibile farlo ricostruire il codice sorgente quando si modifica project/
, ma senza ricostruire la definizione di build, non molto aiuto.
È possibile creare un nuovo prompt sbt, o attività, che durante l'esecuzione potrebbe verificare se i file di origine in progetto/sono aggiornati e emettere un avviso/errore in modo da sapere il riavvio. Questa è probabilmente l'opzione migliore in questo momento.
Come jsuereth ha spiegato che questa non è un'attività che SBT può gestire in 1 istanza. Quello che è richiesto è un riavvio di SBT per interrompere il processo di visione e ricaricare la propria configurazione.
Il seguente script Scala fa esattamente questo, utilizza Java NIO WatchService e Scala Process per monitorare un percorso e riavviare un processo. Il codice dovrebbe essere abbastanza semplice da capire:
#!/usr/bin/env scala
import java.nio.file._
import scala.collection.JavaConversions._
import scala.sys.process._
val file = Paths.get(args(0))
val cmd = args(1)
val watcher = FileSystems.getDefault.newWatchService
file.register(
watcher,
StandardWatchEventKinds.ENTRY_CREATE,
StandardWatchEventKinds.ENTRY_MODIFY,
StandardWatchEventKinds.ENTRY_DELETE
)
def exec = cmd run true
@scala.annotation.tailrec
def watch(proc: Process): Unit = {
val key = watcher.take
val events = key.pollEvents
val newProc =
if (!events.isEmpty) {
proc.destroy()
exec
} else proc
if (key.reset) watch(newProc)
else println("aborted")
}
watch(exec)
uso nella vostra dir SBT sarebbe:
watchr.scala project/ "sbt ~ test:compile"
Se qualcosa non è chiaro, non esitate a chiedere, ovviamente qualsiasi linguaggio di scripting potrebbe essere utilizzato per implementare questo comportamento.
- 1. Come grunt guarda i file nelle sottocartelle?
- 2. Guarda un file per il cambiamento
- 3. File di progetto per Notepad ++?
- 4. È possibile impostare le impostazioni di rientro in Xcode per progetto (o per file, anche)?
- 5. Grunt: guarda più file, compila solo cambiato - interruzioni di fegato?
- 6. Guarda per un cambiamento variabile in python
- 7. Progetto QtCreator CMake - come mostrare tutti i file di progetto
- 8. Strumento per confrontare i file di progetto Xcode
- 9. Proguard - utilizzare anche i file Proguard dai moduli
- 10. Utilizzare i file .java del progetto come file di risorse
- 11. Per un progetto Xcode, è bene aggiungere anche file .xcodeproj al controllo del codice sorgente?
- 12. Guarda l'app condivisa su più destinazioni
- 13. $ guarda all'interno di un servizio?
- 14. API Gmail Guarda non filtrare per etichetta
- 15. Progetto Android: Il modo migliore per organizzare i file
- 16. Guarda più file css con postcss ed emetti un bundle.css
- 17. webpack-dev-server non guarda sui nuovi file creati
- 18. XCode Trova e sostituisci tutti i file di progetto
- 19. Guarda per la creazione di elementi nello script greasemonkey?
- 20. C'è un modo per includere automaticamente i file di contenuto nel file di progetto asp.net?
- 21. Come includere i file .obj nel progetto
- 22. Google Drive SDK Notifiche push - guarda le modifiche su tutti i file?
- 23. Esiste un supporto per i file di progetto come npm/package.json per il pip di Python?
- 24. Come dovrei organizzare i miei file di progetto Xcode?
- 25. Spostamento di file di progetto in un progetto .NET
- 26. API YouYube Guarda video privati
- 27. Grunt - Guarda un file e SFTP quando è cambiato
- 28. Come ottenere i file anche nelle sottocartelle dalla directory
- 29. Come ripulire i file di progetto generati da cmake?
- 30. come caricare i miei file di progetto sull'host svn online?
È possibile guardare la cartella del progetto per il cambiamento e lasciare che SBT si chiuda con garbo? – Schleichardt