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


Compiler un projet GWT (et GWT-EXT) avec ANT sous Eclipse

Bien que le module Cypal pour Eclipse permette de lancer le GWT Toolkit Development et son Hosted Browser permettant d'accéder à la compilation, il est plus simple d'avoir un script Ant qui compile et place directement les bon fichiers générés au bon endroit, prêts pour la publication sur votre serveur web ou j2ee.

Créer le fichier build.xml à la racine de votre projet Eclipse

<?xml version="1.0" encoding="UTF-8"?>
<!--
Compilation du projet GWT, puis copie des fichiers générés vers WebContent
-->
<project name="GwtCompile" basedir="." default="gwtCleanCompileAndPrepareForPublish">

	<property name="gwt.module" value="com.placeoweb.monProjetGwt.MonModuleGwt" />
	<property name="gwt.home" value="/home/placeoweb/gwt/gwt-linux-1.4.61/" />
	<property name="gwt-ext.home" value="/home/placeoweb/libJava/gwt-ext/gwtext-2.0.2/" />
	
	  <target name="gwtCleanCompileAndPrepareForPublish">
		<!--	On efface les anciennes sources de WebContent	-->
	  	<delete dir="WebContent/css"/>	  	
	  	<delete dir="WebContent/js"/>
	  	<delete>
	  		<fileset dir="WebContent" includes="*.*" defaultexcludes="no"/>
	  	</delete>

		<!--	On efface les anciennes compilations GWT	-->	  	
	  	<delete dir="build/gwtOutput"/>

	  	<!--		On compile le projet via GWT	-->
	  	<ant target="gwtCompile" inheritAll="true" />

	  	<!--	On copie les fichiers compilé vers le WebContent	-->	  	
	  	<copy todir="WebContent" preservelastmodified="true">
		  	<fileset dir="build/gwtOutput/${gwt.module}" />
		</copy>	  	
	  	
	  </target>
	
	
	
	<target name="gwtCompile">
	
	    <java classname="com.google.gwt.dev.GWTCompiler" fork="true">
	        <arg line="-logLevel TRACE"/>
	        <arg line="-style OBF"/>
	        <arg line="-out build/gwtOutput"/>
	        <arg value="${gwt.module}"/>
	        <classpath>
	            <path refid="gwt"/>
	        </classpath>
	   </java>
	
	  <path id="gwt">
	
	        <pathelement location="${gwt.home}/gwt-user.jar"/>
	        <pathelement location="${gwt.home}/gwt-dev-linux.jar"/>
	  		<pathelement location="${gwt-ext.home}/gwtext.jar"/>
	  		<pathelement location="src"/>
	  	
	    </path>
	
	  </target> 	
	
</project>
<!-- 
### Ressources de création de ce script ANT

### Ant : http://ant.apache.org/manual/
http://www.derepas.com/java/java_avance_cours2/java_avance_cours2.html#SECTION00030000000000000000

### Effacement
http://www.developpez.net/forums/showthread.php?t=187155
<delete>
   <fileset dir="myDir">
      <include name="*.*"/>
   </fileset>
</delete>

ca ne devrait prendre que les fichiers a la racine de ton repertoire.

il faudrait un <include name="**/*.*"/> pour qu'il efface tes sous-repertoires

<delete file="/dir/doc.txt" />
<delete dir="build"/>

### Copie
http://www.developpez.net/forums/showthread.php?t=285000

### Appel interne de target
http://www.developpez.net/forums/showthread.php?t=282248
avec la balise <ant filename="xxxxx.xml" traget="nomdutargetappeler" inheritAll="true" /> le inheritAll permet de recuperer toutes les propriété de l'ANT appelant (un peut comme un export sous UNIX)

target ==> va appeler directement le target spécifié si rien n'est spécifier li va appeler le target par defaut definit dans la balise <project> du script appelé

filename==> adresse du fichier XML que tu veut appeler

-->

Ce script ANT remplace l'ancien script BASH

#!/bin/sh
#APPDIR=`dirname $0`;
APPDIR=/home/placeoweb/workspace/monProjetGwt
java -cp "$APPDIR/src
:$APPDIR/bin:/home/placeoweb/gwtext-0.9.3/samples/gwtext.jar:/home/placeoweb/gwt/gwt-linux-1.4.60/gwt-user.jar:/home/placeoweb/gwt/gwt-linux-1.4.60/gwt-dev-linux.jar" com.google.gwt.dev.GWTCompiler -out "$APPDIR/www" "$@" com.placeoweb.monProjetGwt.MonModuleGwt;

Exécuter votre script ANT

Rajouter la vue ANT

Window -> Show View -> Other -> Ant

Ajouter votre script dans le lanceur ANT

Faite glisser votre fichier build.xml dans la nouvelle vue ANT

Executer la cible par défaut de votre script ANT

Double cliquer sur la target par defaut "gwtCleanCompileAndPrepareForPublish"

Publier

N'oubliez pas de rafraîchir (F5) votre dossier WebContent avant d'utiliser le Publish d'Eclipse

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