这是我的批处理文件。它位于C:\Work\6.70_Extensions\Lab Tools\
文件夹中。
ANT.BAT:
set CLASSPATH=%CLASSPATH%;.;c:\JavaMail\javamail-1.3\mail.jar;c:\JavaMail\javamail-1.3\mailapi.jar;c:\JavaMail\javamail-1.3\pop3.jar;c:\JavaMail\javamail-1.3\smtp.jar;c:\JavaMail\jaf-1.0.2\activation.jar
CALL "C:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat"
@echo on
%ANT_HOME%\bin\ant -logger org.apache.tools.ant.listener.MailLogger -q -buildfile "Master Build.xml"
pause
与ant.bat
一起,我有一个Master Build.xml
文件位于同一个文件夹中。
当我双击ant.bat
时,它将正确执行Master Build.xml ant脚本。
但是,每当我尝试使用其他应用程序打开批处理文件的绝对路径时,它总是声明Master Build.xml file does not exist!
我尝试使用控制台应用程序和另一个ANT脚本(通过Cruisecontrol框架)打开绝对路径,但两者都给出了相同的错误。这里有什么错误?
这里的信息是我用cruisecontrol
完成的:
config.xml
(设置构建的间隔)nightbuild.xml
(以便config.xml
进入其中以执行所需任务)nightbuild.xml
将运行多个控制台应用程序来对文件进行排序,从版本控制中检出文件等nightbuild.xml
将执行ant.bat
文件来执行构建这些文件config.xml
和nightbuild.xml
位于C:\build
答案 0 :(得分:1)
当您从包含Master Build.xml
的目录以外的目录执行时,Ant将无法找到它希望位于当前工作目录中的构建文件。
您可以设置一个额外的环境变量来指定构建文件的路径,例如
%ANT_HOME%\bin\ant -buildfile "%MASTER_BUILD%\Master Build.xml"
如果您将变量设置为绝对路径(例如C:\Work\6.70_Extensions\Lab Tools
),那么它将始终有效。如果您使用相对路径(例如.\Lab Tools
),那么只有从相对根目录执行时它才会起作用。
(顺便说一句,如果你使用名字中没有空格的构建文件,生活可能会更容易,例如master_build.xml
而不是Master Build.xml
。)