Интегрируйте конструктор Ant в Eclipse: Ошибка "Переменная ссылается на пустой выбор"
У меня есть несколько задач Ant в моем проекте Eclipse JDT, который я хочу выполнить перед каждой компиляцией, поэтому я добавил конструктор Ant в конфигурацию компоновщика Eclipse. В качестве местоположения файла сборки я ввел
${workspace_loc:${project_path}/build.xml}
Я не хочу, чтобы здесь были абсолютные пути или имя проекта. Конфигурация Eclipse является частью репозитория, а другие пользователи проверяют это с помощью разных макетов файловой системы и, возможно, разных названий проектов Eclipse. Например, у меня обычно есть несколько рабочих копий одного и того же проекта в рабочем пространстве Eclipse, каждый из которых, конечно, имеет другое название проекта.
Это работает большую часть времени. Однако иногда я получаю следующее сообщение об ошибке в диалоговом окне:
Ошибки произошли во время сборки.
Ошибка выполнения построителя "Встроенный внешний инструмент" в проекте "MyProjectName".
Переменные ссылки пустой выбор: ${project_path}
Переменные ссылки пустой выбор: ${project_path}
Это происходит, когда Eclipse решает построить проект, пока в обозревателе пакетов не выбран ресурс проекта. Я могу воспроизвести его, создав в проекте фиктивный файл, удалив файл за пределами Eclipse, выбрав его в Eclipse и нажав F5. Eclipse отметит, что файл больше не существует, удалите его из Проводника пакетов (поэтому ничего больше не выбрано), а затем создайте проект, указав сообщение об ошибке.
Хотя не так важно, чтобы задачи Ant выполнялись для каждой компиляции, я не хочу иметь такое окно с сообщением об ошибке, которое будет путать пользователей.
Итак, как я могу
- ссылайтесь на файл build.xml по-другому, чтобы проблема исчезла, или
- устранить проблему или
- подавить диалог ошибки для этой конкретной ошибки?
Любая помощь будет оценена по достоинству. Я использую Eclipse 3.7 (Indigo).
Ответы
Ответ 1
Очевидно, что он имеет проблемы с переводом ссылки на переменную ($ {project_path}) внутри... ссылку на переменную ($ {workspace_loc}).
Вместо этого вы можете попробовать переменную ${build_project}
${build_project:/build.xml}
Надеюсь, это поможет.
Ответ 2
У вас возникли некоторые неудобства в пользовательском интерфейсе Eclipse. Логика диктует вам, что, когда вы открыли проект, переменные, относящиеся к открытому проекту, должны быть заполнены.
Но это не так, потому что из-за ошибки или по другой причине код убил их после того, как фокус переместился в другое место.
Итак, в качестве обходного пути вы можете:
- Поместите полный путь к файлу xml
- Перед запуском внешнего инструмента нажмите в проекте слева (в представлении Project Explorer), затем нажмите кнопку запуска.
Нажатие на проект (значок папки) заполнит переменные
Кстати, я думаю, что ${workspace_loc}${project_path}/build.xml
в порядке.