2009-08-28 3 views
3

Я использую Ant и mxmlc для компиляции классов ActionScript и MXML в swfs, сохраняя при этом организацию по умолчанию проекта Flex Builder (Flash Builder). Многие из моих классов ActionScript находятся в подкаталогах проекта, поэтому мой проект организовываются так:Как получить относительный путь с помощью Ant

MyBigProject 
-build-imports.xml 
-build.xml 

-bin-debug 
--src 
---flash 
---app 
----CoolWidget1.swf 
---Main.swf 
--test 

-src 
--flash 
---app 
----build-imports.xml 
----build.xml 
----CoolWidget1.as 
--build-imports.xml 
--build.xml 
--Main.mxml 
-test 

Этой структура каталогов поддерживает структуру каталогов проекта Flash Builder, так что я могу выполнить кнопочный строит из флэша Builder IDE. Я добавил XML-проект Ant для этого проекта, поэтому я также могу построить из командной строки. Я пытаюсь создать скрипты для создания переносимых муравьев, которые требуют минимальных изменений для повторного использования в других проектах. У меня есть все, что я хочу, кроме как вывести относительные пути.

Нарастание imports.xml файл в корневом каталоге проекта содержит следующие элементы:

<project name="project.root.imports"> 
    <dirname property="project.root.dir" file="${ant.file.project.root.imports}"/> 
</project> 

Хотя папки суб проекта содержат наращивание imports.xml со следующим:

<project name="MyBigProject.src.flash.app.imports"> 
    <import file="../build-imports.xml" /> 
</project> 

Обратите внимание, что sub project build-imports.xml подходит к каталогу hiearchy, пока не попадет в корневой файл build-imports.xml, и там я установил project.root.dir.

Затем я могу использовать $ {project.root.dir}/bin-debug, чтобы указать, где разместить мои двоичные файлы. Единственная проблема, которую я имею, - я не знаю, как создать ту же структуру каталогов, что и под моей папкой src. Мне нужно иметь возможность выводить относительный путь или выполнять некоторые манипуляции с строкой для создания новых каталогов.

Учитывая вышеизложенную информацию, как я беру известный путь:
$ {project.root.dir}/SRC/приложение
и получить путь к каталогу, как:
$ {project.root.dir }/bin-debug/app

Я нашел некоторую информацию о задаче свойства Ant-contribu propertyregex, которая позволила бы выполнять некоторые манипуляции с строкой, но я надеюсь, что там есть гуру мурата, который может указывать на простой решение. Я считаю, что это очень вероятно, как новичок-новичок, я просто игнорирую очевидное.

ответ

2

Мои файлы сборки немного изменились с тех пор, как я опубликовал, но я решил проблему. Я считаю, что следующий будет работать правильно в базовой установке, описанной ранее:

Добавьте к цели по умолчанию в build.xml суб проекта

<path id="build.path"> 
    <pathelement location="." /> 
</path> 
<pathconvert property="build.dir" refid="build.path"> 
    <map from="${project.root.dir}" to="${project.root.dir}/bin-debug"/> 
</pathconvert> 
+0

Обратите внимание, что вам не нужно определить объект пути первым. Также было бы включено: < путь location = "." /> Как дочерний элемент pathconvert вместо атрибута refid. –

+0

Я не знаю, что не так, но выше упоминания кусок не работает как аспект в linux. В моем случае это работает для окон. Может ли кто-нибудь ответить на то же самое? –

Смежные вопросы