Почему Eclipse / m2e не использует PATH моего компьютера при выполнении задач Maven из командной строки?

672
apennebaker

Мой проект использует систему сборки Maven, а сборка Maven включает вызов командной строки thriftдля компиляции некоторых файлов.

В bash mvn generate-sourcesуспешно завершается.

Но когда я использую m2e's Run as... -> generate-sources, журнал консоли Eclipse показывает ошибку о двоичном файле не в PATH. Как я могу исправить представление m2e / Eclipse о пользователе PATH?

Используя последнюю версию Eclipse, на последней Mac OS X.

0
Не решение, а «почему» -> Maven ожидает, что он будет полностью самодостаточным, и любой плагин, который выполняет вызов thrift, отвечает за поиск исполняемого файла или его включение. Хотя иногда это неизбежно, полагаться на то, что программа просто находится в правильном месте в «PATH», - плохая практика в мире мавенов. Darth Android 10 лет назад 0
@DarthAndroid 1) Как еще интегрировать компиляцию Thrift в мой процесс сборки Maven? 2) Как я уже сказал, `mvn generate-sources` работает в bash. Это Eclipse / m2e, который полностью не загружается в переменную окружения PATH пользователя. apennebaker 10 лет назад 0

1 ответ на вопрос

0
Paul Sweatte

Вот обоснование:

Почему сгенерированные исходные папки не добавляются в путь к классам

Плагины Maven, используемые для генерации исходного кода из ресурсов или других источников, могут регистрировать дополнительные исходные папки в проекте Maven во время сборки. Обычно такие плагины привязаны к фазе сборки ресурсов процесса (или ресурсов процесса тестирования) (например, плагинов jaxb, modello или xdoclet). Это означает, что для получения этих исходных папок для сгенерированных источников нам нужно запустить соответствующую фазу сборки Maven.

Не все проекты используют сгенерированные источники, поэтому по соображениям производительности M2Eclipse не выполняет никаких целей Maven по умолчанию при импорте проектов. Это можно изменить в настройках Maven в «Window / Preferences / Maven / Goals для запуска при импорте проекта» (например, вы можете указать фазу сборки «process-resources» или специальные плагины в этом поле).

В качестве альтернативы вы можете запустить действие «Maven / Обновить конфигурацию проекта» из всплывающего меню проекта, которое по умолчанию настроено на запуск «process-resources», и его также можно изменить на той же странице настроек.

Рекомендации