Deploy esploso in JBoss con Eclipse
| giugno 19th, 2009
Qualche settimana fa in ufficio mi è stato chiesto di trovare il modo di configurare Eclipse per fare deploy di un War esploso, in modo da poter modificare le jsp che contiene senza il bisogno di riavviare il server (tempo perso stimato 10 minuti). Dopo un po di ricerche ho trovato il file configurazione responsabile del comportamento del deploy: jboss323.xml
Per procedere alla modifica occorre localizzare il file nella cartella di installazione di eclipse, in particolare nella cartella del plugin jboss:
plugins/org.eclipse.jst.server.generic.jboss_{plugin_version}/buildfiles/
Aprendo il file dovreste trovare tre sezioni ‘target’ di deploy:
- deploy.j2ee.web
- deploy.j2ee.ejb
- deploy.j2ee.ear
contenenti ognuna le istruzioni per ant su come deployare i file.
Prendendo in esempio la prima sezione, notiamo il tag <jar> responsabile dell’impacchettamento del file .war. Per deployarlo esploso, basta sostituire questa intera sezione con una molto più semplice, nella quale indichiamo ad ant di creare una cartella di nome ${module.name}.war nella deploy del server, in questo modo:
<mkdir dir=”${server.publish.dir}/${module.name}.war”/>
Il passo successivo è la copia effettiva dei file in questa nuova cartella. Sostituiamo quindi la vecchia sezione <copy> con questa:
<copy todir=”${server.publish.dir}/${module.name}.war”>
<fileset dir=”${module.dir}” />
</copy>
Ovvero: Copia il contenuto del progetto, nella cartella ${module.name}.war (quella appena creata).
L’ultimo passo è la configurazione dell’ undeploy, individuiamo quindi la sezione “undeploy.j2ee.web” e sostituiamo
<delete file=”${server.publish.dir}/${module.name}.war” failonerror=”false”> </delete>
con:
<delete dir=”${server.publish.dir}/${module.name}.war” failonerror=”false”> </delete>
per dire ad ant di eliminare l’intera cartella.
Fatto questo abbiamo finito; eliminiamo il vecchio .war e diamo una bella ri-deployata.
P.S.
Prova il mio JBoss Manager, per lanciare i server e tenere i log nella system tray.