Build Flex with ANT

Ця стаття про виконання білда простої Flex аплікації із використанням ANT.

Мабуть, для того щоб виконати білд простої Flex аплікації слід знати тільки два тарґети:

  • mxmlc - білд mxml у swf файл.

  • html-wrapper - побудова hmtl файлів обгорток для результуючого swf файла.


Нехай, FLEX_HOME - вказує на шлях, де знаходиться на диску сам Flex, тоді, можна підключити в ANT скріпті

<taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar"/>

Тоді, для того, щоб збілдити swf'ку слід виконати наступний антівський скрипт:

<mxmlc file="${flexApps.basedir}/src/EventsView.mxml"
context-root="/WebAppContext"
keep-generated-actionscript="true"
services="${webapp.basedir}/WebContent/WEB-INF/flex/services-config.xml"
output="${flexApps.output.dir}/EventsView.swf">
<compiler.library-path dir="${FLEX_HOME}/frameworks" append="true">
<include name="${ipcom.basedir}/WebContent/WEB-INF/lib/"/>
</compiler.library-path>
<load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
<source-path path-element="${FLEX_HOME}/frameworks"/>
</mxmlc>


Отже, що собою являють атрибути:

  • file - файл mxml, який представляє собою флекс-аплікацію

  • context-root - назва контексту веб-аплікації, яка використовуватиметься для загрузки флек-аплікаціїю

  • services - файл із описаними сервісами.

  • output - шлях і назва результуючого файла.



А щоб згенерити обгортки:

<html-wrapper file="EventsView.html"
history="true"
template="express-installation"
application="EventsView"
title="Flex Events Viewer"
width="600" height="400"
output="${flexApps.output.dir}"
swf="EventsView"/>

Функціональне програмування

Мабуть важко не замітити, якої потуги набирає функціональне програмування останнім часом. І тому є декілька поважних причин, а саме:

  • використання функціональних мов програмування для написання програм, що використовують конкурентність; іншими словами фукнціональні мови програмування дозволяють писати програми, що можуть працювати і використовувати всі можливості сьогоднішніх багатоядерних процесорів;

  • гнучкісь функціональних мов програмування просто вражає;

  • написання програм за допомогою функціональних мов є досить нескладним, адже вони беруть основу з математичного визначення функції;

  • декотрі функціональні мови програмування (наприклад, Scala) дозволяє використовувати аспекти об'єктно-орієнтованого програмування.

Доречі, від Apache Commons є бібліотека Functor, яка дозволяє використати деякі елементи функціонального програмування в Java. Нажаль, бібліотека ще не в релізі, але будемо надіятися це не надовго. Ця бібліотека дозволить використати такі корисні речі як 1) функції вищого порядку, 2) фільтри, 3) callback функції тощо.


Більш детальнішу інформацію можна знайти там:

  1. Functional programming in the Java language

  2. Functional programming

  3. Functional Programming in the Real World