2009-10-20 67 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