Sono riuscito a farlo funzionare nel mio ambiente di sviluppo utilizzando l' agente JVM Spring Loaded . Mentre sviluppo applicazioni web Spring, la descrizione di quel progetto menziona che lo è
utilizzabile su qualsiasi bytecode che può essere eseguito su una JVM
Utilizzando la seguente configurazione, sono stato in grado di ottenere le modifiche da pubblicare automaticamente su un'istanza Tomcat collegata (il solito metodo Eclipse WTP). Sto usando Spring Tool Suite 3.7.3 basato su Eclipse Mars.2 (4.5.2).
- Scarica l'ultima versione JAR di Spring Loaded dal loro progetto Github . Questo è stato testato con springloaded-1.2.5.RELEASE.jar.
- Configura normalmente un server Tomcat in Eclipse (testato con Tomcat 8.0.30)
- Apri la pagina di configurazione del server Tomcat in Eclipse (fai doppio clic sull'istanza del server nella scheda "Server").
- Nella sezione "Opzioni server", deseleziona "Ricarica automatica moduli per impostazione predefinita".
- Nota: se sono già stati aggiunti moduli web al server, potrebbe essere necessario disabilitare il "Ricaricamento automatico" su di essi singolarmente tramite la scheda "Moduli" (nella parte inferiore della finestra della pagina di configurazione).
- Nella sezione "Informazioni generali", fai clic su "Apri configurazione di avvio"
- Nella scheda "Argomenti", aggiungi quanto segue alla fine degli "Argomenti VM":
-javaagent:/path/to/downloaded/springloaded-1.2.5.RELEASE.jar -noverify
- Per abilitare la visualizzazione dei JAR oltre ai
.classfile del progetto , configurare l' -Dspringloaded=watchJars=argomento VM in base ai commenti di questo problema .
Avvia il server e pubblica i progetti di applicazioni Web dinamiche come al solito. Di nuovo, sono stato in grado di testarlo con le applicazioni web Spring. Ad esempio, la modifica del codice, l'aggiunta / sottrazione di metodi, ecc. Nelle classi @Controller sono state applicate quasi immediatamente dopo aver salvato il file e Eclipse ha compilato e pubblicato la classe modificata. Infine, la sezione FAQ del progetto Spring Loaded ha menzionato alcuni casi in cui le cose non si ricaricano, quindi richiederebbero un riavvio del server / dell'applicazione. Ma queste eccezioni sono molto meno frequenti.
Un'altra nota: NON funziona con il server Pivotal tc incorporato o il server VMware vFabric tc fornito con STS. Per quei server, esiste un'opzione "Abilita il ricaricamento basato su Java Agent (sperimentale)", ma che utilizza la versione precedente 1.2.0 di Spring Loaded, che non ha funzionato per me.