2013-07-01 3 views
2

Как изменить текущий рабочий каталог в Ant?Ant <chdir> задача?

Ant documentation не имеет задачи <chdir>, и мне кажется, что лучше не менять текущий рабочий каталог.

Но предположим, что мы все еще хотим это сделать - как бы вы это сделали? Благодаря!

+0

Существует только 'basedir' (см. Http://ant.apache.org/manual/using.html). Когда он настроен на сборку, вы не сможете ее изменить. Возможно, объясните, что именно вы пытаетесь сделать? –

+0

Несколько задач ANT имеют атрибут dir для установки каталога, в котором должно выполняться определенное действие. –

+0

@martinclayton Я пытаюсь изменить текущий рабочий каталог. Моя локализованная личная проблема будет решена так или иначе, но остается вопрос: есть ли какой-то трюк, с помощью которого можно было бы изменить текущий рабочий каталог? –

ответ

3

После намека Марк О'Коннор в комментариях вопрос, я придумал следующее решение:

<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, но это, казалось, не имело эффекта.

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