从Ant文件中引用Ant脚本位置

12

我有一个实用的构建脚本,它从各个特定于项目的构建脚本中调用,部署在构建服务器上。一切都很好,直到相对目录结构发生变化。也就是说:

trunk/
    utilities/
        imported.xml
        some_resource_file
    projectName/
        importing.xml

这个很好用,但有时我们需要:

trunk/
    importing.xml
    utilities/
        imported.xml
        some_resource_file
    projectName/
问题在于imported.xml需要some_resource_file,目前是通过引用../utilities/some_resource_file来找到它的。这当然在第一种情况下起作用,因为工作目录是utilities的同级目录。
是否有一种简单的方法让imported.xml知道它所在的目录,类似于bash中的dirname $0?还是我必须从导入脚本中注入这个信息?
2个回答

24

确保imported.xml文件定义了带有name属性的项目。然后,您可以通过ant.file.name属性将该名称用作指向ant文件的绝对路径。

我将IMPORTED大写,这样您可以在代码中轻松看到它。

<project
  name="IMPORTED"
>
  <dirname
    property="IMPORTED.basedir"
    file="${ant.file.IMPORTED}"
  />
  <property name="myresource"
    location="${IMPORTED.basedir}/some_resource_file"
  />
</project>

非常好,我在手册里找到了答案,但只是将链接复制到这里。也许这会帮助那些不容易浏览 ant 手册的人。 - David Berger

5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接