2013-09-26 4 views
2

Я использую затмение индиго и Maven 3.1Maven не добавляя банки к пути к классам

Когда я добавляю новую зависимость в pom.xml и запустить Maven чистый, щелкнув правой кнопкой мыши на pom.xml, Maven загружает недостающие банки в мой локальный репозиторий, но не добавляя их в список списков библиотек.

После многих часов изо всех сил, я обнаружил, что я могу решить эту проблему, запустив

mvn eclipse:eclipse -Dwtpversion=2.0

из командной строки каждый раз после добавления новой зависимости. Когда я запускаю maven clean из eclipse после этого, то банки добавляются в библиотеки ссылок.

Кто-нибудь знает, почему это происходит так?

+0

потому что maven не имеет контроля над траекторией построения затмений –

ответ

3

Будьте осторожны, чтобы не смешивать maven-eclipse-plugin и m2e Интеграция Maven затмения.

Вы должны использовать интеграцию Maven eclipse (m2). Если у вас есть команды maven в вашей среде IDE, я полагаю, что вы успешно установили m2e (если не проверить this ответ). В этом случае вы можете преобразовать проект в проект Maven, а Maven Dependencies будут добавлены как библиотека в ваш путь сборки.

Насколько я знаю, если вы используете eclipse:eclipseMaven-затмение-плагин волю «беспорядок» Вашего затмение .classpath файл и поместить каждую зависимость как собственный вход в buildpath (и возможно m2e конфигурация будет перезаписана).

Таким образом, оба «инструментария» имеют разные концепции, которые не должны использоваться вместе. Вы должны принять решение, какую интеграцию вы предпочитаете - в основном используется IMHO m2e.

+1

'eclipse: eclipse' можно охарактеризовать как механизм push. При каждом изменении «pom.xml» вам может потребоваться закрыть Eclipse, запустить цель и снова запустить Eclipse. В то время как m2eclipse использует pulling. Он «прослушивает» каждое изменение pom.xml и может немедленно изменить среду eclipse (заставить ее обновить проект из контекстного меню) –

Смежные вопросы