Sto tentando di eseguire un'attività personalizzata prima della compilazione di un'applicazione Play 2.3. Ho questo nel mio build.sbt
di file:Come evitare che attivatore esegua l'attività di compilazione due volte quando accede alla pagina di riproduzione?
lazy val helloTask = TaskKey[Unit]("hello", "hello")
helloTask := {
println("hello test")
}
(compile in Compile) <<= (compile in Compile) dependsOn helloTask
Quando eseguo activator ~run
e quindi aprire una pagina nel browser, ricevo il seguente output:
C:\Development\test>activator ~run
[info] Loading project definition from C:\Development\test\project
[info] Set current project to play (in build file:/C:/Development/test/)
--- (Running the application from SBT, auto-reloading is enabled) ---
[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
(Server started, use Ctrl+D to stop and go back to the console...)
hello test
[success] Compiled in 418ms
hello test
hello test
[info] play - Application started (Dev)
Sembra che il mio compito personalizzato è in esecuzione per tre volte . C'è un modo per evitarlo?
Interessante. Sembra che il caricamento di una pagina inneschi 'compile' due volte. [Segnalerei un problema] (https://github.com/playframework/playframework/issues). –
BTW, utilizzare la versione più breve 'taskKey' per definire una nuova attività -' lazy val hello = taskKey [Unità] ("My custom hello task") '. –
Alla fine .... Il. La nuova versione potrebbe risolvere questo problema – jsuereth