использование ant-скрипта для исключения командного файла - PullRequest
0 голосов
/ 19 мая 2011

это командный файл, который у меня есть.Он находится в папке 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, он будет правильно выполнять скрипт Ant Build.xml.

Однако всякий раз, когда я пытаюсь использовать другое приложение, чтобы открыть пакетный файлабсолютный путь, всегда утверждается, что Master Build.xml file does not exist!

Я пытался открыть абсолютный путь, используя как консольное приложение, так и другой скрипт ANT (через среду Cruisecontrol), но оба выдают одну и ту же ошибку.В чем здесь ошибка?

для вашей информации вот что я сделал с cruisecontrol:

  1. create config.xml (чтобы установить интервалы для сборок)
  2. create nightbuild.xml (чтобы config.xml входил в него для выполнения необходимых задач)
  3. nightbuild.xml будет запускать несколько консольных приложений для сортировки файлов, извлечения файлов из системы контроля версий и т. д.
  4. наконец, nightbuild.xml выполнит файл ant.bat для выполнения сборки

Эти файлы config.xml и nightbuild.xml находятся в C:\build

1 Ответ

1 голос
/ 19 мая 2011

Когда вы выполняете из каталога, отличного от того, в котором содержится 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).

...