Веб-приложение Eclipse с поддержкой maven ссылается на проекты рабочей области, но они не развертываются при запуске сервера Tomcat.

У меня есть веб-приложение (динамическое веб-приложение Eclipse), которое использует Maven (m2e-wtp) для сборки и управления зависимостями. POM этого веб-приложения ссылается на несколько других проектов в моей рабочей области, которые также являются плагинами eclipse, созданными с помощью maven (созданными с использованием Tycho), а также другими сторонними библиотеками, которые поступают из репозитория Maven.

Все работает нормально, когда я запускаю maven из CLI. Все зависимости включены в каталог WEB-INF/lib, как и ожидалось.

Проблема в том, что я пытаюсь запустить проект с помощью Eclipse. Я запускаю приложение на настроенном сервере Tomcat внутри Eclipse, но упомянутые проекты в моей рабочей области не добавляются в развернутую войну.

Я попытался добавить их в сборку развертывания (в настройках проекта), и это отлично работает, но эти настройки стираются m2e каждый раз при обновлении конфигураций maven. Я читал в нескольких местах, что мы не должны вручную добавлять туда записи, так как все зависимости должны управляться m2e...

Возникает вопрос: Как заставить Eclipse добавлять зависимости проекта рабочей области в WEB-INF/lib моего веб-приложения, когда я запускаю его из Eclipse?

Я использую Eclipse J2EE 4.3.1 (Kepler SR1).

Я также попытался щелкнуть проект правой кнопкой мыши и выбрать «Экспорт» -> «Файл WAR», но экспортированный файл WAR также не включает проекты рабочей области, на которые есть ссылки. Я предполагаю, что проблема затрагивает оба случая.

Это очень раздражает и немного замедляет меня... в настоящее время мне приходится повторно добавлять проекты на страницу сборки развертывания несколько раз в день, чтобы она продолжалась...

ОБНОВЛЕНИЕ: проекты рабочей области, которые я добавил в качестве зависимостей в POM, отображаются в списке ссылочных проектов в свойствах проекта. Но когда я раскрываю зависимости Maven в Project Explorer, зависимости проекта рабочей области отсутствуют в списке! Отображаются только те, что есть в репозитории Maven. Их местные как будто молча игнорируют...


person Edy Bourne    schedule 23.12.2013    source источник
comment
в какой области находятся зависимости? Это должно быть compile или runtime, чтобы быть включенным в войну.   -  person Max Fichtelmann    schedule 24.12.2013
comment
На самом деле я не добавлял никакой явной области видимости и предполагал, что она находится в compile по умолчанию. Я добавил область compile, но получил те же результаты. В рабочей области все в порядке, и когда я запускаю сборку maven, но если я запускаю веб-приложение из eclipse, упомянутые проекты рабочей области не включаются... Я получаю java.lang.NoClassDefFoundError при попытке их использовать.   -  person Edy Bourne    schedule 24.12.2013
comment
привет, у кого-нибудь получилось заставить это работать?   -  person wenic    schedule 08.05.2014


Ответы (1)


У меня была аналогичная проблема, потому что я создал проект вне eclipse, и они его импортировали. Что сработало для меня, так это добавить правильный аспект проекта: контекстное меню проекта -> свойства -> аспекты проекта -> динамический веб-модуль (выберите правильную версию). Я использовал Eclipse ADT (версия 4.2.0), но, чтобы избежать множественных установок, я использую один и тот же eclipse для Android и других приложений.

person cleuton    schedule 31.01.2014