2

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

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

4

1 回答 1

0

仅当扩展为可解析但不可解析${tools.versionupdater.exe}的相对路径时,才会真正发生这种情况。folder1folder1/subfolder/sub

解决它的方法取决于您调用exec.

  1. 如果两者folder1/build.xmlfolder1/subfolder/sub/build.xml都包含相同的exec任务(重复),那么您可以完成这项工作的唯一方法是确保tools.versionupdater.exe属性的值是绝对路径,而不是相对路径。
  2. 如果folder1/subfolder/sub/build.xml在 中调用目标folder1/build.xml,请确保您使用的是ant任务而不是antcall,并提供以下dir属性:

    <ant antfile="../../build.xml" dir="../../" target="...">
        ... parameters ...
    </ant>
    
于 2014-05-26T00:09:16.790 回答