是否可以告訴用戶從哪個目錄運行Ant?從Ant中查找工作目錄
例如,我可能只想在當前工作目錄中運行單元測試,而不是運行整個項目的所有測試。
我嘗試這樣做:
<property environment="env" />
<echo>${env.CWD}</echo>
,但不起作用。
是否可以告訴用戶從哪個目錄運行Ant?從Ant中查找工作目錄
例如,我可能只想在當前工作目錄中運行單元測試,而不是運行整個項目的所有測試。
我嘗試這樣做:
<property environment="env" />
<echo>${env.CWD}</echo>
,但不起作用。
由Ant公開的由System.getProperties()
返回的整個Properties對象。試試這個:
<echo>${user.dir}</echo>
${basedir}
也可能有用。
在Linux下的Netbeans中,${user.dir}
似乎總是等於${user.home}
,但${basedir}
給了我螞蟻從哪裏運行的實際目錄(所以它給了我項目目錄)。
默認情況下,basedir是構建文件的父目錄。這不一定與*工作目錄相同。* – 2011-06-28 21:40:20
這實際上正是我的問題。當我從另一個目錄中的另一個ant腳本調用我的ant腳本時,我無法弄清楚如何讓我的工作目錄成爲其他目錄。我看到user.dir是調用ant腳本的目錄,basedir是我想從中執行我的ant腳本的目錄。我使用'ant target =「default」inheritAll =「true」dir =「$ {otherDirectory}」/>'來調用我的ant腳本,但這隻改變了basedir而不是當前的工作目錄。 – searchengine27 2016-08-09 19:43:53
除非你使用的是Windows,這會給你當前的工作目錄:
<exec executable="sh" outputproperty="my.cwd"><arg line="-c pwd"/></exec>
該命令有效,但它違背了「一次編寫,無處不在」的Ant精神,因爲它不能在Windows下運行。 – 2014-12-03 13:17:35
CWD是沒有設置環境變量典型的Windows的一部分。你如何設置它? @Asaph提供的答案更爲直接。 – DaveParillo 2009-10-20 18:16:45