Publier automatiquement son projet GWT-Ext vers Jboss avec ANT
Par PlaceOweb le mardi, novembre 11 2008, 18:56 - JAVA - Lien permanent
Déploiement automatique d'un projet GWT-Ext vers Jboss avec ANT (sous Eclipse)
Afin de déployer automatiquement mon projet compilé automatiquement, j'ai crée 2 fichiers ANT et 2 fichiers .properties que j'ai laissé dans un dossier "ant" de mon projet.
Les fichiers ANT et .properties
build.GwtExt.xml
<?xml version="1.0" encoding="UTF-8"?> <!-- Ant : http://ant.apache.org/manual/ --> <project name="AntProjetGwt" basedir=".." default="buildGwtExtAndDeployToJboss"> <property file="${ant.file}.properties"/> <target name="gwtCompile"> <echo message="On compile le Module GWT"/> <echo message="gwt.home:${gwt.home}"/> <echo message="gwt-ext.home:${gwt-ext.home}"/> <path id="base.path"> <pathelement location="${gwt.home}/gwt-user.jar"/> <pathelement location="${gwt.home}/gwt-dev-${gwt.os}.jar"/> <pathelement location="${gwt-ext.home}/gwtext.jar"/> <pathelement location="src"/> </path> <java classname="com.google.gwt.dev.GWTCompiler" fork="true"> <jvmarg value="-Xmx256M"/> <arg line="-logLevel TRACE"/> <arg line="-style OBF"/> <arg line="-out build/gwtOutput"/> <arg value="com.placeoweb.projet.ModuleAccueil"/> <classpath> <path refid="base.path"/> </classpath> </java> </target> <target name="cleanBuildCopy4Deploy"> <echo message="On efface les anciennes sources de WebContent"/> <delete dir="WebContent/gwt"/> <delete dir="WebContent/images"/> <delete dir="WebContent/js"/> <delete dir="WebContent/Charts"/> <delete> <fileset dir="WebContent" includes="*.*" defaultexcludes="no"/> </delete> <echo message="On efface les anciennes compilations GWT"/> <delete dir="build/gwtOutput"/> <echo message="On compile le projet via GWT"/> <!-- <ant target="gwtCompile" inheritAll="true" /> --> <antcall target="gwtCompile" inheritAll="true" /> <echo message="On copie les fichiers compiles vers le WebContent"/> <copy todir="WebContent" preservelastmodified="true"> <fileset dir="build/gwtOutput/com.placeoweb.projet.ModuleAccueil" /> </copy> </target> <target name="clean"> <echo message="On efface les anciennes sources de WebContent"/> <delete dir="WebContent/gwt"/> <delete dir="WebContent/images"/> <delete dir="WebContent/js"/> <delete dir="WebContent/Charts"/> <delete> <fileset dir="WebContent" includes="*.*" defaultexcludes="no"/> </delete> <!-- On efface les anciennes compilations GWT --> <echo message="On efface les anciennes compilations GWT"/> <delete dir="build/gwtOutput"/> </target> <target name="copy"> <echo message="On copie les fichiers compiles vers le WebContent"/> <copy todir="WebContent" preservelastmodified="true"> <fileset dir="build/gwtOutput/com.placeoweb.projet.ModuleAccueil" /> </copy> </target> <target name="buildGwtExtAndDeployToJboss" depends="clean,gwtCompile,copy"> <echo message="On fait appel a la compilation du .war a destination de Jboss"/> <ant target="fabriquerEtPublierWar" antfile="ant/build.War.xml" inheritAll="true" /> </target> </project>
build.GwtExt.xml.properties
!-- Gwt gwt.home=C:/gwt !-- linux /windows gwt.os=windows !-- Gwt-Etx gwt-ext.home=C:/gwtext-2.0.5
build.War.xml
<?xml version="1.0" encoding="UTF-8"?> <project name="AntProjet" basedir=".." default="fabriquerEtPublierWar"> <property file="${ant.file}.properties"/> <target name="supprimerWar"> <echo message="On supprime le war publie sur Jboss" /> <delete file="${war.file.path}" /> </target> <target name="copierWar"> <echo message="On publie le war sur Jboss" /> <copy file="${war.tmp.file.path}" todir="${deploy.dir}" /> </target> <target name="fabriquerEtPublierWar" depends="supprimerWar" > <echo message="ant.project.name : ${ant.project.name}" /> <echo message="Making .war in : ${war.tmp.file.path}" /> <war destfile="${war.tmp.file.path}" webxml="WebContent/WEB-INF/web.xml"> <!-- Inclusion de tous les fichiers et dossier de WebContent --> <fileset dir="WebContent"/> <!-- Inclusion des classes compilées --> <classes dir="${classes.dir}"/> <!-- Inclusion de lib spécifiques --> <!-- <lib file="C:/gwt/gwt-servlet.jar"/> --> </war> <!-- Publication par copie du .war généré --> <antcall target="copierWar" inheritAll="true" /> </target> <target name="testProperties"> <echo message="${user.home}"/> <echo message="${tmp.dir}"/> <echo message="${war.file.path}"/> </target> </project>
build.War.xml.properties
!-- Les classes classes.dir=build/classes !-- Dossier temporaire pour creation du WAR tmp.dir=C:/WINDOWS/Temp !-- Dossier Jboss dans lequel le war doit etre deploye deploy.dir=C:/jboss-4.2.3.GA/server/default/deploy !-- A laisser tel que, permet de definir le chemin absolu du .war war.file=${ant.project.name}.war war.tmp.file.path=${tmp.dir}/${war.file} war.file.path=${deploy.dir}/${war.file}
Ajout de la tache ANT pour la compilation du projet GWT+GWT-Ext et déployement sur Jboss
- Faire glisser le fichier ant/build.GwtExt.xml dans votre vue Ant sous Eclipse
- Executer la tache par default : "buildGwtExtAndDeployToJboss"
- Attendre que Jboss déploie de nouveau votre projet web via le .war fraîchement créé
- C'est terminé, il ne vous reste plus qu'a admirez votre magnifique projet web GWT + GWT-EXT sur son URL