如何更改ant目录以从不同的文件夹执行ant任务

时间:2013-10-16 14:37:42

标签: ant

有两个构建文件放在不同的文件夹

folder1/build.xml

folder1/subfolder/sub/build.xml

我在folder1/build.xml

中有可执行的任务
<exec dir="." executable="${tools.versionupdater.exe}" failonerror="true">
  <arg value="${dist.path}" />
  <arg value="${build.version}" />
  <arg value="${build.version}" />
</exec>

正常运行,因为它可以找到visionupdater.exe放在同一根文件夹下的folder1/tools/VersionUpdater/versionupdater.exe

如何从另一个构建文件运行versionupdater.exe 放在folder1/subfolder/sub/build.xml

1 个答案:

答案 0 :(得分:0)

只有当${tools.versionupdater.exe}扩展为可从folder1解析但无法从folder1/subfolder/sub解析的相对路径时,才会发生这种情况。

解决此问题的方法取决于您对exec的调用情况。

  1. 如果folder1/build.xmlfolder1/subfolder/sub/build.xml包含相同的exec任务(重复),那么唯一可以使此工作的方法是确保{{1}的值} property是绝对,而不是 relative ,path。
  2. 如果tools.versionupdater.exe调用folder1/subfolder/sub/build.xml中的目标,请确保您使用folder1/build.xml任务而不是ant,并提供antcall } attribute:

    dir