8

请帮忙,我有点生气!

我正在使用 Eclipse 生成的 antfiles 来构建一个具有依赖项的项目,其中一个在一个目录中有自己的构建文件,该目录是我正在构建的项目的直接祖先的兄弟。例如,如果我的目录是"/base/modules/clinicalcontext",则其中一个依赖项的目录就是"/base/core"

因此,生成的 build.xml 使用 ../../core ,其中 afaik 是正确的。但事实并非如此!!从控制台很明显,Ant 回到了三个级别,而不仅仅是两个(它在"/core/build.xml"上给出了 FileNotFound )。

我试图将相对路径更改为“../core”,令我惊讶的是,Ant 这样回溯了一级(它感叹“/base/modules/core”不存在)。那么,我到底如何告诉 Ant 不返回两个级别呢?我宁愿避免使用绝对路径,因为有一天我可能不得不将项目移动到另一台机器上。

谢谢大家。

4

1 回答 1

10

所有 Ant 路径都将相对于您当前的工作目录。

因此,请检查您从哪个目录运行脚本。

我建议您开始使用${basedir}来获取相对于build.xml.

在您的情况下,相对路径应该这样构造:${basedir}/../../core,而不是../../core.

您遇到的不一致说明了为什么 eclipse 生成的 ant 脚本是一个好的起点,但从来不是一个好的项目构建系统。

编辑。我想知道为什么 eclipse ant 生成器不插入${basedir}相对路径?也许您应该将其报告为错误。

于 2009-12-03T14:56:55.107 回答