Compiler du flex avec maven pour air et pour flex

Avertissement préalable : ce message concerne un sujet technique, si vous êtes là pour la déconne … ben c’est pas pour vous.

 

Supposons que vous soyez moi. Ou vous dit que vous devez (enfin, vous imaginez plutôt qu’on vous a dit ça) trouver une solution pour compiler tous vos jolis projets Flex avec maven. Pour ça, évidement, vous savez qu’il existe flexmojos. Et pendant un moment, tout va bien. Vous arrivez à compiler vos SWC et SWF sans trop de problèmes (si on met de coté les numéros de version louches, l’absence de certains artefacts – d’une utilité discutable, cela dit -, la gestion « délicate » des thèmes – cherchez pas, c’est pas la méthode que j’utilise -, ou encore la gestion des include dans le code). Mais, à un moment, vous allez tomber sur du code « compatible » Flex/AIR. Et là, c’est vraiment pas gagné. Parce que la méthode « canonique » pour écrire du code Flex pour les applets ou les applications, c’est d’utiliser l’équivalent Flex des macros C :

 

 

Pas vraiment beau, et surtout pas facile de faire rentrer ça dans la logique Maven qui dit « un projet, un artefact ». parce que là, le but, c’est avec un seul projet de produire deux artefacts : un SWF pour AIR et un SWF pour Flex.

 

Heureusement, en fouillant un peu, j’ai trouvé un début de solution : les classifieurs. Bien sûr, j’aurais pu utiliser les profiles, mais ils sont, d’après ce que j’ai compris, exclusifs. Il fallait cependant que j’adapte ça à mon problème. Pas forcément facile. Néanmoins, flexmojos fournit les paramètres de configuration permettant de définir les propriétés conditionnelles. Du coup, le fragment de POM suivant permet de produire un SWF ayant le classifieur « flex » et un autre ayant le classifieur « air » :

 

 

Bon, évidement, comme mon artefact utilise un POM parent (pour définir tout le bordel des dépendances flex), j’ai dé enlever la compilation swc par défaut, c’est pour ça que (grâce à cet article) j’ai réassocié l’exécution default-compile-swc à la phase none.

 

Et dire que ces histoires n’en sont qu’à leur commencement …
Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s