referencing ant script location from within ant file

北战南征 提交于 2019-12-18 03:33:50

问题


I have a utility build script that gets called from a variety of project-specific build scripts on a build server. Everything works fine, until the relative directory structure changes. That is:

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

works just fine, but sometimes we need:

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

The problem is that imported.xml needs some_resource_file and currently gets to it by referring to ../utilities/some_resource_file. This obviously works in the first case because the working directory is a sibling of utilities.

Is there a simple way for imported.xml to know what directory it's in, something equivalent to dirname $0 in bash? Or do I have to do I have to somehow inject this from the importing script?


回答1:


Make sure that imported.xml defines project with name attribute. Then you can use that name for an absolute path to the ant file through ant.file.name property.

I have capitalized IMPORTED, so you can easily see it in the code.

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



回答2:


Found the answer:

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

Check under resolving files against the imported file.



来源:https://stackoverflow.com/questions/1676939/referencing-ant-script-location-from-within-ant-file

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!