После намека Марк О'Коннор в комментариях вопрос, я придумал следующее решение:
<project name="cwd" default="parent">
<target name="parent">
<echo message="Current working directory in parent: ${basedir}" />
<ant antfile="../build.xml" dir="subdir" target="subDirTarget"
inheritAll="true" inheritRefs="true" />
</target>
<target name="subDirTarget">
<echo message="Current working directory in subDirTarget: ${basedir}" />
</target>
</project>
Это работает - выход:
Buildfile: C:\Sandbox\parent\build.xml
parent:
[echo] Current working directory in parent: E:\Sandbox\parent
subDirTarget:
[echo] Current working directory in subDirTarget: E:\Sandbox\parent\subdir
BUILD SUCCESSFUL
Total time: 1 second
Я также попытался с помощью Ant-Contrib «s <var>
задача изменить basedir
, но это, казалось, не имело эффекта.
Существует только 'basedir' (см. Http://ant.apache.org/manual/using.html). Когда он настроен на сборку, вы не сможете ее изменить. Возможно, объясните, что именно вы пытаетесь сделать? –
Несколько задач ANT имеют атрибут dir для установки каталога, в котором должно выполняться определенное действие. –
@martinclayton Я пытаюсь изменить текущий рабочий каталог. Моя локализованная личная проблема будет решена так или иначе, но остается вопрос: есть ли какой-то трюк, с помощью которого можно было бы изменить текущий рабочий каталог? –