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

Dav*_*ger 12 java ant

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

trunk/
    utilities/
        imported.xml
        some_resource_file
    projectName/
        importing.xml
Run Code Online (Sandbox Code Playgroud)

工作得很好,但有时我们需要:

trunk/
    importing.xml
    utilities/
        imported.xml
        some_resource_file
    projectName/
Run Code Online (Sandbox Code Playgroud)

问题在于imported.xml需求some_resource_file并且目前通过引用来实现../utilities/some_resource_file.这显然适用于第一种情况,因为工作目录是兄弟的utilities.

有没有一种简单的方法imported.xml可以知道它所在的目录,等同dirname $0于bash?或者我必须做什么我必须以某种方式从导入脚本中注入此内容?

Ale*_*yak 24

确保imported.xml定义具有name属性的项目.然后,您可以使用该名称作为ant文件的绝对路径ant.file.name.

我已将IMPORTED大写,因此您可以在代码中轻松查看.

<project
  name="IMPORTED"
>
  <dirname
    property="IMPORTED.basedir"
    file="${ant.file.IMPORTED}"
  />
  <property name="myresource"
    location="${IMPORTED.basedir}/some_resource_file"
  />
</project>
Run Code Online (Sandbox Code Playgroud)


Dav*_*ger 5

找到了答案:

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

解析文件下检查导入的文件