2012-12-18 13 views
8

Sto utilizzando IntelliJ con Tomcat 6 per eseguire un'applicazione Spring Java EE. Piuttosto che schierare la guerra compilata, ho optato per l'utilizzo dello spiegamento di guerra esploso, dandomi quindi la possibilità di scambiare alcune classi e JSP.Qual è la differenza tra "Redeploy" e "Restart Server" in IntelliJ?

Tuttavia, a parte le "Classi di aggiornamento" e "Aggiorna classi e risorse", IntelliJ consente inoltre agli utenti di "ridistribuire" e "riavviare il server" in un'azione di aggiornamento. Qual è la differenza tra queste due scelte?

Se apporto una modifica alle firme del metodo nella mia classe, o se apporto una modifica nel mio Springconfig.xml, devo riavviare il server o è sufficiente una ridistribuzione? Ho notato che non sono in grado di utilizzare semplicemente le classi hotswap le cui firme di funzioni o annotazioni associate sono state modificate.

risposta

12

Riavviare il server fa esattamente quello che dice, e riavvia il server Tomcat. La tua guerra verrà ricostruita e implementata all'avvio del server. Questo è utile se hai problemi a scambiare a caldo le tue classi.

Redeploy ridistribuirà l'intero file .war (senza riavviare il server), anziché provare a sostituire a caldo le classi modificate e altre risorse.

Consulta anche: http://www.jetbrains.com/idea/webhelp/updating-a-running-java-ee-application.html

In risposta alla tua seconda domanda, un redeploy dovrebbe essere sufficiente. Detto questo, può causare perdite di memoria ed è spesso solo leggermente più veloce di un riavvio completo.

3

Risorse di aggiornamento. Tutte le risorse modificate (ovvero tutti i componenti dell'applicazione diversi dalle classi) verranno aggiornate.

Aggiornamento classi e risorse. Tutte le risorse modificate verranno aggiornate; le classi modificate verranno ricompilate. Nella modalità di debug, le classi aggiornate verranno sostituite a caldo. In modalità esecuzione, IntelliJ IDEA aggiornerà semplicemente le classi modificate nella cartella di output. Se tali classi verranno effettivamente ricaricate nell'applicazione in esecuzione, dipende dalle funzionalità del runtime utilizzato.

Ridistribuire. L'applicazione verrà aggiornata e ridistribuita.

Riavviare il server. Il server verrà riavviato. La versione aggiornata dell'applicazione verrà distribuita all'avvio del server. Per gli artefatti imballati, le opzioni disponibili sono:

Classi di scambio a caldo. Le classi modificate verranno ricompilate e ricaricate in fase di runtime. Nota che questa opzione funzionerà solo in modalità di debug. Ridistribuzione. L'applicazione complessiva verrà ricostruita e ridistribuita. Riavvia il server. Il server verrà riavviato. L'applicazione verrà ricostruita e distribuita all'avvio del server.

Da: http://www.jetbrains.com/idea/webhelp/run-debug-configuration-tomcat.html