2009-12-03 41 views
8

请帮助,我要微微疯狂!!新来的蚂蚁 - 相对路径问题

我使用Eclipse的产生antfiles建立与依赖关系的项目,其中之一有它自己的构建文件的目录是一个兄弟到我建设项目的直接祖先。例如。如果我的目录是“/ base/modules/clinicalcontext”,其中一个依赖关系的目录只是“/ base/core”

因此,生成的build.xml使用../../core哪个afaik是正确的。但它不是!从控制台很显然,蚂蚁回去三个级别,而不仅仅是两个(它提供“/core/build.xml” FileNotFound)。

我试图相对路径并有太大的变化“../core”我惊讶的是,这样蚂蚁可以追溯到由一个的水平(感叹‘/基/模块/芯’存在不存在的)。那么我怎么在世界上告诉蚂蚁回到两个的等级?我宁愿避免使用绝对路径,因为有一天我可能需要将项目移动到不同的机器。

谢谢大家。

回答

10

所有Ant路径将与您当前的工作目录相关。

因此,请检查您正在运行脚本的目录。

我建议您开始使用${basedir}来获取相对于build.xml位置的路径。

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

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

编辑。我想知道为什么eclipse ant generator不会在相对路径中插入${basedir}?也许你应该将它报告为一个错误。

+0

$ {basedir}已正确设置为。这也是我正在使用的构建文件的位置。 – Alessandro 2009-12-03 14:59:58

+3

是的,但是这样的路径('../../ core')不是相对于basedir。 '../../ core'依赖于你的CWD,'$ {basedir} /../../ core'不是。 – 2009-12-03 15:07:00

+1

这样做,谢谢!我没有考虑到依赖关系的构建文件不会改变CWD。 – Alessandro 2009-12-03 15:43:44