Получение и использование родительского каталога через ANT - PullRequest
4 голосов
/ 04 августа 2011

У меня есть структура каталогов и build.xml, как это

    /path-to-project/src/prj1
    /path-to-project/src/prj2

    /path-to-project/tests
    /path-to-project/tests/build.xml

Мне нужно как-то найти путь

    /path-to-project/

в моем build.xml

Мой build.xml похож на это

* * 1010

Здесь я как-то хочу получить значение ${source} как /path-to-project/src/, но я не получаю его с ${parent.dir}

Возможно ли получить этот путь в build.xml?

Ответы [ 2 ]

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

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

<project name="php-project-1" default="build" basedir=".">
  <property name="root.dir" location=".."/>
  <property name="source" location="${root.dir}/src"/>
  ...
</project>

Обновление: Изменено value на location в соответствии с ответом Мартина, который вы должны принять.

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

Вы должны использовать атрибут location вместо value для установки свойства source:

<property name="source" location="src"/>

Затем Ant установит для свойства абсолютный путь к указанному местоположению. Если местоположение выглядит как относительный путь, абсолютный путь рассчитывается относительно basedir. property task имеет другие атрибуты, которые вы можете использовать для дальнейшей настройки.

Чтобы получить родительский каталог вашего basedir, вы также можете использовать:

<property name="parent.dir" location=".." />

(по крайней мере, на Unix-машине, не тестируется на Windows.)

...