flex-compilation

Embed Size (px)

Citation preview

  • 8/7/2019 flex-compilation

    1/11

    Compiler des projets Flex

    en ligne de commande

    par Vincent Petithory (Mes articles)

    Date de publication : 21/03/2008

    Dernire mise jour :

    Ce tutoriel vous expliquera comment compiler vos projets Flex en ligne decommande. Cette mthode vous permettra d'augmenter votre productivit touten vous affranchissant de tout environnement de dveloppement.

    http://lunar.developpez.com/
  • 8/7/2019 flex-compilation

    2/11

    Compiler des projets Flex en ligne de commande par Vincent Petithory (Mes articles)

    - 2 -Copyright 2007-2008 - Vincent Petithory. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300000 E de domages et intrts.

    http://lunar.developpez.com/tutoriels/flex/compilation/

    I - IntroductionII - Exploration ...III - Compilation simple ...IV - Compilation l'aide d'un XML ...V - Vers l'automatisation ...VI - Conclusion

    http://lunar.developpez.com/tutoriels/flex/compilation/http://lunar.developpez.com/tutoriels/flex/compilation/http://lunar.developpez.com/
  • 8/7/2019 flex-compilation

    3/11

    Compiler des projets Flex en ligne de commande par Vincent Petithory (Mes articles)

    - 3 -Copyright 2007-2008 - Vincent Petithory. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300000 E de domages et intrts.

    http://lunar.developpez.com/tutoriels/flex/compilation/

    I - Introduction

    Vous ne vous tes jamais dit que compiler vos projets Flex ou AIR sans vous reposer sur Flex Builder ou d'autre IDEserait plutt pas mal ? Oui je vous vois venir, a ne sert rien, et pourtant :).

    Cela permet de comprendre ce qui se passe dans les coulisses, et surtout, une fois maitris, vous avez bien plus decontrles sur tout ce que vous faites. C'est galement une tape ncessaire pour flexouiller sans Flex Builder.

    Bon bon. Oui a peut paratre rbarbatif au dbut. Mais a reste simple pour compiler un simple .as ou un MXML.Pour compiler tout un projet, ou un framework, cela demande un peu plus d'organisation, mais rien de bien compliqu.

    Toutes les sources utilises dans ce tutorial sont ici ( miroir ).

    C'est parti :).

    http://lunar.developpez.com/tutoriels/flex/compilation/http://lunar.ftp-developpez.com/tutoriels/flex/compilation/fichiers/files.zipftp://ftp-developpez.com/lunar/tutoriels/flex/compilation/fichiers/files.ziphttp://lunar.developpez.com/tutoriels/flex/compilation/http://lunar.developpez.com/
  • 8/7/2019 flex-compilation

    4/11

    Compiler des projets Flex en ligne de commande par Vincent Petithory (Mes articles)

    - 4 -Copyright 2007-2008 - Vincent Petithory. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300000 E de domages et intrts.

    http://lunar.developpez.com/tutoriels/flex/compilation/

    II - Exploration ...

    Un petit tour d'horizon de nos compileurs dj. Ils se trouvent dans le dossier {pathFlexSDK3}\bin\. Ceux qui nousintressent ici sont :

    Le compileur mxmlc.exe (ainsi que le batch et le shell amxmlc, qui configure mxmlc pour compiler du AIR)

    Le compileur compc.exe (ainsi que le batch et le shell acompc, qui configure compc pour compiler unebibliothque contenant des classes de AIR)

    Le compileur asdoc.exe, qui permet de gnrer de la documentation.

    Dans cet article, on ne verra que la compilation avec mxmlc. Des articles ultrieurs expliqueront comment compilerun ensemble de classes en une bibliotheque SWC, gnrer une documentation avec l'ASDOC, et compiler avec stylevos applications AIR. Que du bonheur en perspective !

    http://lunar.developpez.com/tutoriels/flex/compilation/http://lunar.developpez.com/tutoriels/flex/compilation/http://lunar.developpez.com/
  • 8/7/2019 flex-compilation

    5/11

    Compiler des projets Flex en ligne de commande par Vincent Petithory (Mes articles)

    - 5 -Copyright 2007-2008 - Vincent Petithory. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300000 E de domages et intrts.

    http://lunar.developpez.com/tutoriels/flex/compilation/

    III - Compilation simple ...

    On supposera, dans la suite, qu'on se trouve dans un environnement Windows (des fichiers batch seront utiliss, ilsuffira de les transposer en shell pour les linuxiens).

    Il faut garder l'esprit qu'on cherche tre productif, nous allons donc utiliser des fichiers batch afin de faciliterl'appel des commandes.

    Pour exprimenter, compilons un mxml simple. Le fichier batch crer # dans le mme rpertoire pour cet exemple# ncessite de crer une variable mmorisant le chemin absolu ou relatif vers le compileur mxmlc (prfrez deschemins absolus pour la rutilisabilit).

    @echo off

    REM the path of the mxmlc compiler

    SET mxmlcPath="C:\Program Files\Adobe\Flex SDK 3\bin\mxmlc.exe"

    REM The mxml to compile

    SET mxmlToCompile="SimpleCompile.mxml"

    %mxmlcPath%%mxmlToCompile%

    pause

    On l'excute...

    Trs bien, nous avons notre swf cre juste ct de notre mxml et de son batch.

    C'est bien pratique pour compiler simplement un petit mxml qu'on fait en test par exemple. Solution ne pas compareravec la version artillerie lourde, du style, Flex Builder -> New Project, et hop on se retrouve avec pas mal de fichierspour... juste un test....

    Ainsi, utiliser un simple batch a l'avantage d'tre facile mettre en place, et donc pratique pour des travaux de petiteenvergure.

    http://lunar.developpez.com/tutoriels/flex/compilation/http://lunar.developpez.com/tutoriels/flex/compilation/http://lunar.developpez.com/
  • 8/7/2019 flex-compilation

    6/11

    Compiler des projets Flex en ligne de commande par Vincent Petithory (Mes articles)

    - 6 -Copyright 2007-2008 - Vincent Petithory. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300000 E de domages et intrts.

    http://lunar.developpez.com/tutoriels/flex/compilation/

    IV - Compilation l'aide d'un XML ...

    Si on veut aller plus loin, la mthode prcdente ne suffit plus.

    En effet, le compileur prend en charge un nombre important d'options. La liste complte de ces options se trouvedans les sources jointes ce tutoriel.

    Ds lors, le batch n'est plus vraiment adapt contenir toutes ces options. Au niveau maintenance et productivit,ce n'est plus grable de crer une variable pour chaque option du compileur, ou d'avoir une ligne de commandesinbuvables. Nous allons donc utiliser un xml de configuration, qui sera spcifique chaque projet, dans lequel lesoptions du compileur seront memorises.

    Avant de se lancer, quelque rappels et conseils pratiques.

    La bonne habitude prendre ds lors qu'on travaille en POO est d'organiser son travail sous forme de packages.Notre projet a une racine, contenant nos packages, et d'autres lments. Ce n'est normalement pas nouveau pourvous (j'espre). La bonne pratique est d'ajouter cette racine d'autres dossiers types, comme par exemple un dossier'docs', contenant notre documentation, un dossier 'bin' ou 'deploy' pour notre sortie, etc..

    Une bonne ide est de faire un dossier 'build', qui contiendra tous nos fichiers de configuration pour compiler notreprojet, et d'ajouter des raccourcis des batch o bon vous semble, si vous jugez que cela vous fait gagner du temps.

    Je vais prendre comme exemple une mini-application que j'ai ralis il y a quelques temps, et qui illustre l'utilisationde la classe Matrix... Un truc bateau en somme, qui n'utilise qu'un simple MXML et une bibliothque (d'une seuleclasse, pour l'exemple).

    On dsire compiler Matrixes.mxml, mais avec certaines options. Parmi elles, le nom du swf produit, les source-path,des library inclure, le frame-rate, des metadata, etc.

    Notre batch, avec les options du compileur devient :

    http://lunar.developpez.com/tutoriels/flex/compilation/http://lunar.developpez.com/tutoriels/flex/compilation/http://lunar.developpez.com/
  • 8/7/2019 flex-compilation

    7/11

  • 8/7/2019 flex-compilation

    8/11

    Compiler des projets Flex en ligne de commande par Vincent Petithory (Mes articles)

    - 8 -Copyright 2007-2008 - Vincent Petithory. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300000 E de domages et intrts.

    http://lunar.developpez.com/tutoriels/flex/compilation/

    Le raisonnement est le mme que pour des packages. -source-path est une commande de compiler. Ainsi, nous leregroupons dans le XML dans une balise .

    En revanche, -o est l'alias de la commande top-level 'output'. La balise est donc placer directement sous la racine.

    La logique est la mme pour les autres commandes.

    Un point important noter est que les chemins relatifs spcifis sont pris par rapport l'emplacement du xml.

    Une autre remarque : j'ai pu constater que la commande -l, (library-path dans le xml) utilise en dehors du xmlde configuration semble neutraliser l'import des bibliothques chargs par le fichier de configuration par dfaut(flex-config.xml). En revanche, utilise dans un autre xml de configuration, les bibliothques s'ajoutent normalementaux autres sans les neutraliser. Utilisez donc -include-libraries en ligne de commande, qui ne produit pas cette erreur.En passant, la diffrence entre ces deux commandes : -include-libraries inclut dans le swf la totalit de la bibliothque,

    alors que -l (library-path) inclue uniquement les classes requises par l'application.

    Maintenant, nous devons modifier le batch pour qu'il charge notre fichier de configuration.

    Pour cela, nous utilisons la commande -load-config.

    @echo off

    REM the path of the mxmlc compiler

    SET mxmlcPath="C:\Program Files\Adobe\Flex SDK 3\bin\mxmlc.exe"

    REM the path of your xml configuration

    SET xmlConfigPath=matrixes.config.xml

    %mxmlcPath% -load-config+=%xmlConfigPath%

    pause

    Il n'y a plus qu' lancer le batch.

    Remarquez la ligne supplmentaire indiquant que le compileur a bien charg notre xml de configuration (en plus duxml de configuration de flex par dfaut).

    Pour les dveloppeurs AIR, tout ceci est valable, ceci prs qu'il faut invoquer amxmlc.bat au lieu de mxmlc.exe.

    amxmlc charge air-config.xml au lieu de flex-config.xml afin d'inclure les classes propres AIR. J'en dirai plus surla compilation de projets AIR dans un autre article.

    http://lunar.developpez.com/tutoriels/flex/compilation/http://lunar.developpez.com/tutoriels/flex/compilation/http://lunar.developpez.com/
  • 8/7/2019 flex-compilation

    9/11

    Compiler des projets Flex en ligne de commande par Vincent Petithory (Mes articles)

    - 9 -Copyright 2007-2008 - Vincent Petithory. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300000 E de domages et intrts.

    http://lunar.developpez.com/tutoriels/flex/compilation/

    V - Vers l'automatisation ...

    Recrire un xml de configuration chaque projet serait fastidieux. J'utilise donc un template de xml qui convient pour95% des projets. Je l'accompage aussi d'un template de batch, o seule une ligne est modifier. On gagne un tempsprcieux, puisqu'1 minute suffit tout mettre en place.

    De plus, on voit vite un avantage se profiler : la portabilit du xml et son implmentation dans bon nombre de langages(Java, PHP, etc.), offrent un bon panel de possibilits de gestion. Pourquoi pas une petite appli en AIR qui creraitautomatiquement vos xml de configuration par exemple ?

    C'est tout pour cette fois-ci ! Toute remarque est la bienvenue.

    http://lunar.developpez.com/tutoriels/flex/compilation/http://lunar.developpez.com/tutoriels/flex/compilation/http://lunar.developpez.com/
  • 8/7/2019 flex-compilation

    10/11

    Compiler des projets Flex en ligne de commande par Vincent Petithory (Mes articles)

    - 10 -Copyright 2007-2008 - Vincent Petithory. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300000 E de domages et intrts.

    http://lunar.developpez.com/tutoriels/flex/compilation/

    VI - Conclusion

    Dans cet article, nous avons vu comment compiler des projets Flex l'aide des compileurs en ligne de commande.Nous avons pu approfondir en mettant en place une mthode afin d'amliorer la rapidit de mise en service etnotre productivit, tout cela sans l'utilisation d'environnements de dveloppement. Une tape indispensable pour toutdveloppeur Flex et Air voulant s'orienter vers des outils libres.

    http://lunar.developpez.com/tutoriels/flex/compilation/http://lunar.developpez.com/tutoriels/flex/compilation/http://lunar.developpez.com/
  • 8/7/2019 flex-compilation

    11/11

    Compiler des projets Flex en ligne de commande par Vincent Petithory (Mes articles)

    - 11 -Copyright 2007-2008 - Vincent Petithory. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu :textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300000 E de domages et intrts

    http://lunar.developpez.com/tutoriels/flex/compilation/http://lunar.developpez.com/