Новое в Ant - проблема с относительными путями - PullRequest
8 голосов
/ 03 декабря 2009

Пожалуйста, помогите, я немного схожу с ума !!

Я использую сгенерированные Eclipse antfiles для создания проекта с зависимостями, один из которых имеет свой собственный файл сборки в каталоге, который является родным для прямого предка проекта, который я строю. Например. если мой каталог "/ base / modules / clincontext" , каталогом одной из зависимостей будет просто "/ base / core" .

Итак, сгенерированный build.xml использует ../../core, который afaik правильный. Но это не так!! Из консоли видно, что Ant возвращает три уровня, а не только два (он дает FileNotFound для "/ core / build.xml" ).

Я пытался изменить относительный путь на "../ core" и, к моему большому удивлению, Ant возвращается на уровень one (оплакивает " / base / modules / core " не существует). Так как же я скажу Ant вернуться на два уровня? Я бы предпочел избегать использования абсолютных путей, поскольку мне, возможно, придется когда-нибудь перенести проект на другую машину.

Спасибо всем.

1 Ответ

10 голосов
/ 03 декабря 2009

Весь путь Ant будет указан относительно вашего текущего рабочего каталога.

Итак, проверьте, из какого каталога вы запускаете свой скрипт.

Я предлагаю начать использовать ${basedir}, чтобы получитьпуть относительно местоположения build.xml.

В вашем случае относительный путь должен быть построен следующим образом: ${basedir}/../../core вместо ../../core.

Несоответствия, с которыми вы сталкиваетесьпроиллюстрируйте момент, почему сгенерированные затмением муравьиные сценарии являются хорошей отправной точкой, но никогда не являются хорошей системой сборки проекта.

EDIT .Интересно, почему генератор муравьев Eclipse не вставляет ${basedir} в относительные пути?Может быть, вы должны сообщить об этом как об ошибке.

...