Jednotné nastavenia mxmlc kompilátora
Kedysi moje nastavenie vyzeralo nejako takto:
-locale en_US
Po čase sa rozrástlo na:
-locale en_US -keep-generated-actionscript -incremental -optimize=false
-keep-as3-metadata+=Collaborative,Keywords
-define=APPLICATION::debug,true -define=APPLICATION::release,false
Vynásobím si počet zmien za rok krát počet vývojových strojov, prirátam jeden integračný server a dostanem desiatky úprav kompilačných argumentov, desiatky duplicitných informácií, ktoré sú roztrúsené po celom development department. Každá ďalšia zmena mi pripomína, že musím napísať e-mail s oznamom o zmene, že na polovici strojov to budem musieť prísť upraviť osobne a ešte sa prihlásiť na server, nájsť všetky miesta v ant-ových skriptoch kde sa nastavujú ďalšie kompilačné parametre (unit-testy, mapy pokrytia …). Pri najlepšom je to pár hodín roboty.
Našťastie sa to celé dá spríjemniť na jeden jediný svn commit a v budúcnosti už nemusíme nastavovať každý stroj zvlášť, základné nastavenia mxmlc budú konzistentné a my ostaneme DRY.
1. Vytvoríme app-config.xml. Súbor kopíruje štruktúru východzieho konfiguračného súboru sdk/3.5.0.12683a/frameworks/flex-config.xml avšak nemusí byť kompletný a stačí ak bude obsahovať len nastavenia, ktoré chceme zmeniť.
<?xml version="1.0"?>
<flex-config>
<compiler>
<define>
<name>APPLICATION::debug</name>
<value>false</value>
</define>
<define>
<name>APPLICATION::release</name>
<value>true</value>
</define>
<keep-as3-metadata>
<name>Bindable</name>
<name>Managed</name>
<name>ChangeEvent</name>
<name>NonCommittingChangeEvent</name>
<name>Transient</name>
<name>Collaborative</name>
<name>Keywords</name>
</keep-as3-metadata>
<keep-generated-actionscript>true</keep-generated-actionscript>
<optimize>false</optimize>
<incremental>true</incremental>
</compiler>
</flex-config>
2. Necháme si prejsť mráz po chrbte a posledný krát nastavíme na všetkých strojoch kompilačné argumenty vývojového prostredia:
-load-config+=app-config.xml
3. Pri budúcej zmene kompilačných argumentov stačí editovať xml súbor a zmeny rozdistribuovať cez svn.
Literatúra:
- Xavi Beumala (Technical Architect, Adobe), Streamlining your Flex project environment, http://www.adobe.com/devnet/flex/articles/flex_streamline_project_environment_print.html