【问题标题】:Ant <chdir> task?Ant <chdir> 任务?
【发布时间】:2013-06-29 00:42:11
【问题描述】:

如何更改 Ant 中的当前工作目录?

Ant documentation 没有&lt;chdir&gt; 任务,在我看来最好不要更改当前工作目录。

但是让我们假设我们仍然想这样做 - 您将如何实现呢?谢谢!

【问题讨论】:

  • 只有basedir(见ant.apache.org/manual/using.html)。一旦设置为构建,您就无法更改它。也许解释一下你想要做什么?
  • 几个 ANT 任务有一个 dir 属性,用于设置特定操作应该发生的目录。
  • @martinclayton 我正在尝试更改当前工作目录。我的本地化个人小问题将通过一种或另一种方式解决 - 但问题仍然存在:是否有一些技巧可以改变当前的工作目录?
  • 我应该在我的第一条评论前面加上“Ant 没有当前工作目录的概念,您可以在构建过程中更改它。”但是,如果您愿意,您可以使用不同的目录“重新输入”(即自调用 Ant)。正如 Mark 提到的,有很多任务可以配置为在指定目录中运行。

标签: ant ant-contrib


【解决方案1】:

根据 Mark O'Connor 在问题 cmets 中的提示,我想出了以下解决方案:

<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&lt;var&gt;任务来更改basedir,但这似乎没有效果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多