Возможно ли иметь несколько пользовательских конфигураций сборки в проекте Flex для одной и той же базы кода ActionScript 3? - PullRequest
0 голосов
/ 07 января 2011

Платформа: Flex 3 & Flex 4 Язык: AS3

Я унаследовал очень большую кодовую базу, написанную для фреймворка Flex3 на работе.

Моя компания хотела бы разделить программное обеспечение на «более мелкие», более «конкретные» варианты использования. Возможности некоторых продуктов будут частично совпадать.

Одним из вариантов будет копирование базы кода в различные проекты и сокращение кода для различных сценариев использования в зависимости от ситуации. (это даже уместно?)

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

Можно ли создавать пользовательские конфигурации сборки поверх одной (1) базы кода, которая компилирует только то, что необходимо для этого конкретного продукта? (Я представляю себе что-то похожее на операторы #ifdef или, возможно, сборки конфигураций в Visual Studio)

Поможет ли переход на git? (Мы используем SVN.)

Любой совет будет принят с благодарностью.

-Regards

Оливер

Ответы [ 3 ]

0 голосов
/ 07 января 2011

Вы можете сделать это, чтобы получить условную компиляцию в AS3, но я не уверен, что это то, что вы после http://www.boostworthy.com/blog/?p=227

После того, как я еще раз посмотрю на это, это не будет полностью условной компиляцией, как было сказано другим автором здесь, я бы также предложил просто разбить библиотеку и использовать соответствующие части там, где это необходимо, maven хорош для управления этими типами кусочной установки, потому что вы можете определить модуль с подмодулями (отдельные библиотеки Flex или модули Flex или приложения) и всеми зависимостями и управлять им в одном месте.

http://maven.apache.org/

для гибкой компиляции

http://flexmojos.sonatype.org/

Хорошо, последнее редактирование, кроме того, использование maven позволяет вам добавлять свойства или зависимости, условно зависящие от среды сборки или передавая параметры для указания конкретного профиля, который будет использоваться во время компиляции, это определенно займет некоторое время начальной настройки / обучения, но если вы есть время на настройку, это окупается в долгосрочной перспективе.

Я соврал насчет последнего редактирования :), я просто думал, что вы действительно можете выполнить условную загрузку классов, основанную на первом маршруте и используя getClassByAlias, но независимо от того, что классу потребуется ссылка в коде, и поэтому он будет скомпилирован в SWF, хотя и не используется в некоторых условиях.

0 голосов
/ 04 августа 2011

Вы можете полностью выполнить условную компиляцию, если используете FlashDevelop.

Ссылочная ссылка: http://www.flashdevelop.org/wikidocs/index.php?title=AS3_Conditional_Compilation

По сути, вы вводите что-то вроде этого:

CONFIG::mode_a{
    foo_mode_a();
}

CONFIG::mode_b{
    foo_mode_b();
}

Изатем в ваших настройках проекта flashdevelop, свойствах, настройках проекта, установите некоторые константы компилятора, "CONFIG :: mode_a, true", "CONFIG :: mode_b, false".Затем будет вызвана функция foo_mode_a (), а функция foo_mode_b () - нет.

Существуют различные способы использования этого (перейдите по ссылке), но самый мощный - сделать так, чтобы кода НЕ ДАЖЕ, если вы поместите его в блок условной компиляции с переменной, установленной в falseв ваших настройках.

0 голосов
/ 07 января 2011

ActionScript не поддерживает условную компиляцию или несколько конфигураций сборки. Что вы можете сделать, это разбить ваш код на несколько компонентных библиотек. Это было бы похоже на создание статических и динамических библиотек на C / C ++. См. эту статью о создании SWC-файлов. SWC-файл - это архивный файл для компонентов Flex и других ресурсов, который вы хотите использовать в нескольких проектах. Таким образом, вам не нужно будет поддерживать несколько копий кода.

...