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

时间:2009-11-04 21:57:38

标签: java ant

我有一个实用程序构建脚本,可以从构建服务器上的各种项目特定的构建脚本中调用。一切正常,直到相对目录结构发生变化。那就是:

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 个答案:

答案 0 :(得分:21)

确保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>

答案 1 :(得分:4)

找到答案:

http://ant.apache.org/manual/Tasks/import.html

根据根据导入的文件解析文件