2011-08-04 75 views
4

使用父目錄我有一個目錄結構&的build.xml這樣獲取並通過ANT

/path-to-project/src/prj1 
    /path-to-project/src/prj2 

    /path-to-project/tests 
    /path-to-project/tests/build.xml 

我必須以某種方式獲取路徑

/path-to-project/ 

在我的build.xml

我的build.xml就是這樣的

<project name="php-project-1" default="build" basedir="."> 
    <property name="source" value="src"/> 
    <target name="phploc" description="Generate phploc.csv"> 
     <exec executable="phploc"> 
     <arg value="--log-csv" /> 
     <arg value="${basedir}/build/logs/phploc.csv" /> 
     <arg path="${source}" /> 
     </exec> 
    </target> 
</project> 

在這裏,我莫名其妙地想要得到的${source}/path-to-project/src/價值,但我不與${parent.dir}

得到它是否有可能獲得在build.xml這條道路?

回答

9

您可以像使用命令行一樣使用..來導航到父目錄。

<project name="php-project-1" default="build" basedir="."> 
    <property name="root.dir" location=".."/> 
    <property name="source" location="${root.dir}/src"/> 
    ... 
</project> 

更新:改變valuelocation按照馬丁的答案,你應該接受。

+0

哇這麼簡單...... 。我正在嘗試'basedir =「../」'應該猜到了。謝謝!! – Sumitk

7

您應該使用location屬性,而不是value設置source屬性:然後

<property name="source" location="src"/> 

螞蟻會將屬性設置爲給定位置的絕對路徑。如果該位置看起來像一條相對路徑,則絕對路徑將相對於basedir進行計算。 property task還有其他一些屬性可以用來進一步調整。

爲了讓您的BASEDIR的父目錄,你同樣可以使用:

<property name="parent.dir" location=".." /> 

(至少在UNIX機器上,而不是在Windows上進行測試。)

+0

+1位置信息。這應該清理一下我的構建文件。 :) –

+0

@馬丁 - 感謝您的位置信息。現在很少有事情很清楚。 Thnks! – Sumitk