Attention : Le contenu de ces pages n'a pas été mis à jour depuis au moins 2016.
Les informations techniques ne sont pertinentes que pour les versions 4.0 maximum de Firefox/Gecko.
Il est fort probable que des liens vers des sites web externes ne fonctionnent plus.

Ant

D'après la définition de wikipédia : "Ant est un projet open source de la fondation Apache écrit en Java qui vise le développement d'un logiciel d'automatisation des opérations répétitives tout au long du cycle de développement logiciel, à l'instar des logiciels Make."

Dans la pratique, un fichier build.xml indique les instructions à réaliser pour construire le fichier xpi de l'extension.

Voyons un exemple simple :

 <?xml version="1.0"?>
 <project name="pagenotes" default="createxpi">
   <target name="createxpi" depends="init, createjar">
     <zip destfile="pagenotes.xpi">
       <zipfileset dir="." includes="chrome/pagenotes.jar" />
       <zipfileset dir="." includes="install.rdf" />
       <zipfileset dir="." includes="chrome.manifest" />
     </zip>
   </target>
   <!-- Everything inside the chrome directory is zipped into "pagenotes.jar",
       which is then put back into the chrome directory. -->
   <target name="createjar">
     <zip destfile="chrome/pagenotes.jar">
       <zipfileset dir="chrome/" includes="content/**" />
     </zip>
   </target>
   <target name="init">
     <delete>
       <fileset dir="." includes="pagenotes*.xpi"/>
       <fileset dir="." includes="chrome/pagenotes.jar" />
     </delete>
   </target>
 </project>

Une petite explication de texte :

  • la balise project est obligatoire, elle peut contenir les attributs name, default et basedir. Seul l'attribut default doit nécessairement être spécifié, il indique quelle est l'action la première action à réaliser. L'attribut name permet d'identifier le script et basedir sert à renseigner le répertoire par défaut du script (cela évite de devoir renseigner l'attribut dir pour chaque balise par la suite).
 <project name="pagenotes" default="createxpi">
  • L'action par défaut est ici de créer un fichier xpi, elle est définie par la balise target de nom createxpi. Cette action par défaut dépend de deux autres actions : init et createjar, qui seront exécutée dans l'ordre avant de poursuivre à l'action createxpi.
 <target name="createxpi" depends="init, createjar">
  • L'action init consiste à nettoyer le projet des fichiers .xpi et .jar existant. Pour indiquer la suppression, on utilise la balise delete. On indique ensuite dans les balises fileset les fichiers à supprimer. l'attribut dir="." indique qu'on se situe dans le répertoire courant, l'attribut includes précise les fichiers à supprimer. On remarquera le caractère \* (étoile) dans pagenotes*.xpi qui permet de dire de supprimer toutes les fichiers commencant par pagenotes et finissant par .xpi
  • L'action createjar permet de créer le fichier jar contenant le code de l'extension. C'est la balise zip qui dit que l'action à réaliser est une compression zip l'attribut destfile indique ou doit se trouver le fichier compressé. Ici seul le dossier content est à compresser mais si votre extension utilise un répertoire skin ou locale veillez à rajouter les lignes correspondantes.
  • Enfin on revient à la création du xpi qui est aussi une compression zip.

Liens

En anglais :

En français :


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.