2009-10-20 49 views
36

是否可以告訴用戶從哪個目錄運行Ant?從Ant中查找工作目錄

例如,我可能只想在當前工作目錄中運行單元測試,而不是運行整個項目的所有測試。

我嘗試這樣做:

<property environment="env" /> 
<echo>${env.CWD}</echo> 

,但不起作用。

+1

CWD是沒有設置環境變量典型的Windows的一部分。你如何設置它? @Asaph提供的答案更爲直接。 – DaveParillo 2009-10-20 18:16:45

回答

57

由Ant公開的由System.getProperties()返回的整個Properties對象。試試這個:

<echo>${user.dir}</echo> 
39

${basedir}也可能有用。

在Linux下的Netbeans中,${user.dir}似乎總是等於${user.home},但${basedir}給了我螞蟻從哪裏運行的實際目錄(所以它給了我項目目錄)。

+7

默認情況下,basedir是構建文件的父目錄。這不一定與*工作目錄相同。* – 2011-06-28 21:40:20

+0

這實際上正是我的問題。當我從另一個目錄中的另一個ant腳本調用我的ant腳本時,我無法弄清楚如何讓我的工作目錄成爲其他目錄。我看到user.dir是調用ant腳本的目錄,basedir是我想從中執行我的ant腳本的目錄。我使用'ant target =「default」inheritAll =「true」dir =「$ {otherDirectory}」/>'來調用我的ant腳本,但這隻改變了basedir而不是當前的工作目錄。 – searchengine27 2016-08-09 19:43:53

2

除非你使用的是Windows,這會給你當前的工作目錄:

<exec executable="sh" outputproperty="my.cwd"><arg line="-c pwd"/></exec> 
+4

該命令有效,但它違背了「一次編寫,無處不在」的Ant精神,因爲它不能在Windows下運行。 – 2014-12-03 13:17:35