Создание Flex проектов в Ant / Nant - PullRequest
7 голосов
/ 12 сентября 2008

В моей компании постоянно возникают проблемы с перерывами в сборке в наших проектах Flex. Проблема главным образом возникает потому, что сборка, которую разработчики делают на своих локальных машинах, принципиально отличается от сборки, которая происходит на сборочной машине. Разработчики строят проекты, используя FlexBuilder/eclipse, а сборочная машина использует компиляторы командной строки. Неизбежно, {projectname}-config.xml и / или командный файл, который запускает сборку, не синхронизируются с файлами проекта, используемыми Eclipse, поэтому сборка завершается успешно на компьютере разработчика, но не на машине сборки.

Мы пошли по пути написания служебной программы для преобразования файлов проекта FlexBuilder в файл {projectname}-config.xml, но это а) недокументированное и б) ужасный взлом.

Я искал ключ -dump-config, чтобы получить файлы конфигурации, но у него есть пара проблем: 1) Сгенерированный файл конфигурации имеет абсолютные пути, которые не работают в нашей среде (некоторые разработчики используют macs (некоторые машины с Windows) и 2) работают правильно только при запуске из IDE, поэтому их нельзя встроить в процесс сборки.

Завтра мы обсудим пару вариантов, ни один из которых мне безумно не нравится:

a) Добавить событие после регистрации в Subversion, чтобы удалить эти абсолютные ссылки, или
b) добавить процесс предварительной сборки, удаляющий абсолютную ссылку.

Не могу поверить, что мы первая группа разработчиков, столкнувшаяся с этой проблемой, но я не могу найти каких-либо хороших решений в Google. Как другие группы справились с этой проблемой?

Ответы [ 2 ]

1 голос
/ 15 сентября 2008

Хотя это и не является решением вашей конкретной проблемы, обходным решением является использование сервера непрерывной интеграции.

Используя что-то вроде Круиз-контроль , вы можете автоматически запускать сборку каждый раз, когда кто-то отправляет что-то в систему контроля версий. Затем, если сборка не удалась по какой-либо причине (в том числе из-за несоответствия среды), это зависит от разработчика, который сломал ее, чтобы это исправить. Вы можете настроить его так, чтобы отправлять электронные письма о неудаче / успехе различными способами.

1 голос
/ 13 сентября 2008

Я обнаружил, что одним из недокументированных требований для использования ant с Flexbuilder была установка переменной FLEX_HOME в вашем скрипте ant. Обычно в build.xml есть следующее:

<!– Module properties –>
<property environment=”env”/>
<property name=”build.dir” value=”build”/>
<property name=”swf.name” value=”MyProjectSwf”/>
<property name=”root.mxml” value=”Main.mxml”/>
<property name=”locale” value=”en_US”/>
<property name=”FLEX_HOME” value=”${env.FLEX_HOME}”/>

Это может показаться хлопотным, но это гораздо более разумный подход к обеспечению согласованности между платформами и средами, если вы используете несколько платформ для своих разработчиков.

НТН

...