Ant build.xml окна пробелов в пути

Я использую Windows, и я пытаюсь заставить ANT работать.

Когда я делаю сборку ANT из командной строки, я получаю: C:\dev\Projects\springapp\${%ANT_HOME%}\lib not found.

Я смотрю в файл build.xml, и я нахожу: appserver.home=${user.home}/apache-tomcat-6.0.14 (который я только что скопировал и вставил прямо из учебника)

Я изменил его на:

appserver.home="C:\Program Files\Apache Software Foundation\Tomcat 6.0"

но теперь я получаю:

C:\dev\Projects\springapp\"C:Program FilesApache Software FoundationTomcat 6.0"\lib not found.

Кажется, что пустое пространство в Program Files и Tomcat 6.0 приводит к сбою сборки. Как вы справляетесь с ними в xml файлах без повторного создания каталога с пробелом без пробелов?

Ответы

Ответ 1

Измените его на

appserver.home="C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0"

Ответ 2

Вариант с "/" вместо "\" работает в моей системе. Просто нужно удалить символы до и после структуры пути.

Ответ 3

Похоже, что у вас неправильно настроены настройки.

Я предполагаю, что ваше свойство basedir указывает на C:\dev\Projects\springapp, и ваши свойства используют значение, подобное:

<property name="property.1" value="directory" />

вместо

<property name="property.1" location="directory" />

Используя свойство location, вы разрешаете ссылки относительно вашего объекта, если это относительный путь и абсолютный путь, если вы введете один из них. Если вы могли бы публиковать части своего файла Ant специально, как вы определяете apperver.home и как вы используете его в задаче, которая бросает ошибку, я мог бы быть более конкретным.

Ответ 5

В дополнение к экранированию разделителя каталогов Windows также убедитесь, что все пути, которые вы вводите, должны иметь правильную заглавную букву, Windows не чувствительна к регистру, но создает регистр, а Ant чувствительна к регистру.

Ответ 6

В верхней части вашего файла build.xml попробуйте добавить <property environment="env"/> и затем используя ${env.USER_HOME} (или что-то еще, что у вас есть в вашей среде). Это сделало это для меня ($ {env.JAVA_HOME}, а не ${java.home}).