【问题标题】:using ant script to exceute a batch file使用 ant 脚本执行批处理文件
【发布时间】:2011-05-19 06:30:21
【问题描述】:

这是我拥有的批处理文件。它位于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 所做的:

  1. 创建config.xml(设置构建间隔)
  2. 创建nightbuild.xml(以便config.xml 进入其中执行所需任务)
  3. nightbuild.xml 将运行多个控制台应用程序来对文件进行排序、从版本控制中检出文件等
  4. 最后,nightbuild.xml 将执行ant.bat 文件来执行构建

这些文件,config.xmlnightbuild.xml 位于 C:\build

【问题讨论】:

    标签: ant batch-file cruisecontrol


    【解决方案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,生活可能会更轻松。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多