Вопрос по compc, flex, mxmlc, build-process – Условное включение библиотек Flex (SWC) в задачи mxmlc / compc ant

2

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

У меня есть цель инициализации, которая включает в себя условные задачи, такие как:

 
  
 

Цель этой задачи - установить свойство, определяющее имя набора шаблонов, который будет использоваться при объявлении неявного набора файлов в задаче mxmlc или compc. Набор шаблонов, указанный выше, определяется как:

 
  
  
 

Затем на именованный набор шаблонов ссылается задача mxmlc или compc следующим образом:


 
  
 

Это неПохоже на работу. По крайней мере размер SWC не указывает на то, что дополнительные библиотеки автоматизации были скомпилированы. Я хочу иметь возможность указать свойство командной строки, которое определяет, какой набор шаблонов использовать для различных типов сборок.

У кого-нибудь есть идеи о том, как этого добиться? Спасибо!

Ваш Ответ

2   ответа
2

 чтобы работать правильно, вы можете взглянуть на  а также задачи предоставлены ant-contrib. В итоге мы сделали что-то вроде этого:

<target name="build">
    <if>
        <equals arg1="automation.qtp" arg2="true">
        <then>
            <!--
               - Build with QTP support.
               -->
        </then>
        <else>
            <!--
               - Build without QTP support.
               -->
        </else>
    </equals></if>
</target>

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

Это отличное предложение. Я придерживался подобного подхода ранее, наивно полагая, чтоесли> будет разрешено в пределах <mxmlc> задание, которое, конечно, не былот. Я не имелt обернул mxmlc в <если>, Это, вероятно, сработает, однако в этом скрипте встроено около 15 модулей, и яЯ должен был обернуть это много раз. Я искал подход, который позволил бы мне установить библиотеки включения один раз и автоматически подобрать их по всем <mxmlc> задачи в проекте муравья. Если я неЯ не слышал никаких альтернатив, яПридется попробовать. Благодарю. lje
Мы решили проблему дублирования, создав цель build-all, которая использовала ant-contrib <Еогеасп> Задача и соответствует всем * .mxml файлам в определенном каталоге. <Еогеасп> затем вызвал нашу цель build-single, которая условно включала бы библиотеки QTP. Erich Douglass
0

конфигурационные файлы , Итак, сгенерируйте конфигурационный XML на лету, объединивechoxml задача и если-то-еще.

<echoxml file="path/to/flex-config.xml">
    <flex-config>
        <compiler>
            <library-path append="true">
                <path-element>${lib.qtp}</path-element>
            </library-path>
        </compiler>
    </flex-config>
</echoxml>

Если ваши потребности сложнее, вы можете даже сгенерировать несколько конфигов xml и торговый центр.

Лично я нахожу любую логику очень лаконичной и уродливой, чтобы писать с использованием Ant 'Условия или, если не то, XML не очень приятный язык для программирования. К счастью, этоМожно использовать более гибкий подход - написать скрипт для создания XML-конфигурации перед вызовом mxmlc. Например. использоватьскрипт задание с вашим любимым языком сценариев

<script language="javascript">
    <![CDATA[
        // Create your XML dynamically here.
        // Write that XML to an external file.
        // Later, feed that file to mxmlc using `<load-config ... />`.
    ]]>
</script>

Похожие вопросы