Новое в Ant — проблема с относительными путями
Вопрос
Пожалуйста, помогите, я немного схожу с ума!!
Я использую сгенерированные Eclipse antfiles для создания проекта с зависимостями, один из которых имеет собственный файл сборки в каталоге, который является брат или сестра к прямому предку проекта, который я создаю.Например.если мой каталог "/base/modules/clinicalcontext", каталог одной из зависимостей просто "/база/ядро".
Итак, сгенерированный файл build.xml использует ../../core, что на самом деле правильно.Но это не так!!Из консоли видно, что Муравей возвращается. три уровни, а не только два (это дает FileNotFound на "/core/build.xml").
Я попытался изменить относительный путь к "../основной" и, к моему большому удивлению, таким образом Муравей возвращается обратно. один уровень (он жалуется "/база/модули/ядро" несуществующий).Так как же я говорю Муравью, чтобы он не возвращался? два уровни?Я бы предпочел избегать использования абсолютных путей, поскольку когда-нибудь мне, возможно, придется переместить проект на другую машину.
Спасибо всем.
Решение
Весь путь Ant будет относиться к вашему текущему рабочему каталогу.
Итак, проверьте, из какого каталога вы запускаете свой скрипт.
Я предлагаю вам начать использовать ${basedir}
чтобы получить путь относительно местоположения build.xml
.
В вашем случае относительный путь должен быть построен следующим образом: ${basedir}/../../core
, вместо ../../core
.
Несоответствия, с которыми вы сталкиваетесь, иллюстрируют, почему ant-скрипты, сгенерированные eclipse, являются хорошей отправной точкой, но никогда не являются хорошей системой сборки проекта.
РЕДАКТИРОВАТЬ.Интересно, почему не вставляется генератор муравьев затмения? ${basedir}
в относительных путях?Возможно, вам следует сообщить об этом как об ошибке.