请帮忙,我有点疯了!!
我正在使用Eclipse生成的antfiles来构建一个带有依赖项的项目,其中一个项目在一个目录中有自己的构建文件,这个目录是我正在构建的项目的直接祖先 sibling 。例如。如果我的目录是“/ base / modules / clinicalcontext”,其中一个依赖项的目录只是“/ base / core”。
因此,生成的build.xml使用../../core,其中afaik是正确的。但它不是!!从控制台很明显,Ant返回三个级别,而不仅仅是两个(它在“/ core / build.xml”上提供FileNotFound)。
我试图将相对路径更改为“../ core”,令我惊讶的是,这样一来,Ant又回到了一个级别(它感叹“/ base / modules / core”不存在)。那么在世界上我告诉Ant如何通过两个级别返回?我宁愿避免使用绝对路径,因为有一天我可能不得不将项目移动到另一台机器上。
谢谢大家。
答案 0 :(得分:10)
所有Ant路径都与您当前的工作目录相关。
因此,请检查您运行脚本的目录。
我建议您开始使用${basedir}
获取相对于build.xml
位置的路径。
在您的情况下,相对路径应该像这样构建:${basedir}/../../core
,而不是../../core
。
你遇到的不一致表明了为什么eclipse生成的ant脚本是一个很好的起点,但从来都不是一个好的项目构建系统。
修改即可。我想知道为什么eclipse ant生成器不会在相对路径中插入${basedir}
?也许您应该将其报告为错误。