有两个构建文件放置在不同的文件夹中
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>
它运行正常,因为它可以找到放置在同一根文件夹下的folder1/tools/VersionUpdater/versionupdater.exe
中的visionupdater.exe
。
如何从另一个构建文件运行versionupdater.exe
哪个放在folder1/subfolder/sub/build.xml
?
只有当${tools.versionupdater.exe}
扩展到可从folder1
解析但无法从folder1/subfolder/sub
解析的相对路径时,才会发生这种情况。
解决方法取决于您如何准确拨打exec
。
- 如果
folder1/build.xml
和folder1/subfolder/sub/build.xml
都包含相同的exec
任务(重复),则完成此操作的唯一方法是确保tools.versionupdater.exe
属性的值是绝对路径,而不是相对路径。 -
如果
folder1/subfolder/sub/build.xml
在folder1/build.xml
中调用目标,请确保使用ant
任务而不是antcall
,提供dir
属性:<ant antfile="../../build.xml" dir="../../" target="..."> ... parameters ... </ant>