Aller au contenu | Aller au menu | Aller à la recherche


Publier automatiquement son projet GWT-Ext vers Jboss avec ANT

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

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Fil des commentaires de ce billet