我在Windows 7上使用在Cygwin上运行的bash shell。我在我的bash脚本中有这个,它试图根据当前正在执行的脚本的位置找出构建文件的位置...
SCRIPT_DIR="$( cd -P "$( dirname "$0" )" && pwd )"
BUILDFILE=$SCRIPT_DIR/build.xml
ant -buildfile $BUILDFILE -Dbuildtarget=$1 -Dmodule="$2" -Dproject=$3 -Dnolabel=true -DFirefox=$4 -DInternetExplorer=$5 -DGoogleChrome=$6 Selenium4
但是,即使文件存在,我也会收到“无法找到构建文件错误”
$ sh c:/selenium//run_client_tests.sh prod "\Critical Path\Live\QX" MyProj true false false
cygwin warning:
MS-DOS style path detected: c:/selenium//run_client_tests.sh
Preferred POSIX equivalent is: /cygdrive/c/selenium/run_client_tests.sh
CYGWIN environment variable option "nodosfilewarning" turns off this warning.
Consult the user's guide for more details about POSIX paths:
http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
Started script
Buildfile: \cygdrive\c\selenium\build.xml does not exist!
Build failed
ls显示文件在那里......
dev@selenium_w7 /cygdrive/c/selenium
$ ls /cygdrive/c/selenium/build.xml
/cygdrive/c/selenium/build.xml
dev@selenium_w7 /cygdrive/c/selenium
$ ls c:/selenium/build.xml
c:/selenium/build.xml
答案 0 :(得分:2)
这里的问题是蚂蚁不了解Cygwin风格的路径。请注意,ant抱怨它无法找到\ cygdrive \ c \ selenium \ build.xml。那是因为/ cygwin只能被Cygwin shell理解。
您需要做的是将DOS样式的路径传递给ant。所以替换
BUILDFILE=$SCRIPT_DIR/build.xml
与
BUILDFILE=`cygpath -w $SCRIPT_DIR/build.xml`
或者为了使这与平台无关,使用Java风格的路径
BUILDFILE=`cygpath -m $SCRIPT_DIR/build.xml`