Как запустить проект Maven в Tomcat из Eclipse - PullRequest
40 голосов
/ 28 мая 2009

Я управляю многоуровневым проектом Maven. Он имеет веб-приложения, упакованные как WAR, которые зависят от компонентов, упакованных как файлы JAR

Большинство изменений кода, которые я делаю, принадлежат этим JAR-файлам.

Чтобы проверить изменения, мне нужно переупаковать JAR и WAR и развернуть внешне в tomcat.

Я пытался использовать плагин sysdeo-tomcat-maven-eclipse, но он не работал должным образом.

Пожалуйста, сообщите, если у кого-нибудь есть решение этой проблемы

Спасибо Gaurav

Ответы [ 4 ]

38 голосов
/ 09 декабря 2011

Использование подключаемого модуля Maven Eclipse Integration

Если у вас возникли проблемы, я нашел полезным попробовать средство командной строки mvn для отладки. Как правило, если он собирается без ошибок из командной строки, вы можете запустить его в Eclipse (но у tomcat тоже есть проблемы, поэтому вам может понадобиться время от времени очищать рабочий каталог и очищать кеши).

Кроме этого, я действительно рекомендую использовать плагин Maven Eclipse Integration! Я использую версию из репозитория плагина Sonatypes http://m2eclipse.sonatype.org/sites/m2e. В репозитории eclipse есть более новая интеграция, но она работает по-другому, и у меня еще не было времени исследовать его использование.

Если ваш проект модульный, это может помочь настроить корневой проект как простой проект (без Java, без Java EE). Затем импортируйте подпроекты как простые проекты Java (снова без Java EE). Вы по-прежнему можете активировать управление зависимостями и запускать цели сборки через проект.

Import modules

Вам нужно только выбрать подмодули, необходимые для вашего целевого (ых) проекта (ов), по зависимостям.

Select dependencies to include as sub projects

Для любого проекта, создающего военные файлы, активируйте фасеты для java ee и настройте контекстный корень в доступны дополнительные настройки (это можно сделать только один раз, почему опция отсутствует на скриншоте, поэтому сделайте это правильно ).

Select your decired facets

Затем настройте сборку развертывания для ваших связанных проектов. Все родственные проекты (активные в рабочей области) следует добавить в сборку развертывания, а также необходимо добавить запись пути сборки для maven зависимостей в сборку развертывания. После настройки вы можете использовать директиву Run on server для загрузки ваших веб-приложений.

Setup deployment assembly

Я считаю полезным всегда оставаться в чистом Java-режиме при кодировании maven-проектов. Любые умные представления в Eclipse только затеняют то, что происходит за кулисами, вы получаете доступ к определенным редакторам, так или иначе активируя связанные проекты!

10 голосов
/ 28 мая 2009

Я использую плагин eclipse webtools и запускаю из него мой Tomcat. У него есть метод повторной публикации, который также публикует файлы jar (если нет, просто очистите каталог и повторите публикацию).

В файле pom у вас должны быть следующие строки, чтобы веб-инструменты поддерживались автоматически

<build>
    ...
    <plugins>
        <plugin>
            <artifactId>maven-eclipse-plugin</artifactId>
            <configuration>
                <wtpversion>1.5</wtpversion>
                ...
            </configuration>
        </plugin>
        ...
    </plugins>
    ...
</build> 
2 голосов
/ 13 февраля 2012

Использование подключаемого модуля интеграции Maven Eclipse и Web Runner

Настройте скрытый проект (уже описанный в другом ответе), используйте последний подключаемый модуль Maven Eclipse Integration. Это должно быть расположено на сайте обновления вашей версии Eclipse в сотрудничестве. В моем случае Indigo - http://download.eclipse.org/releases/indigo (/ Сотрудничество / Интеграция Maven для Eclipse).

В качестве альтернативы встроенному серверу, который часто не может обновить зависимости рабочей области в сборке развертывания (для tomcat), я бы порекомендовал использовать средство запуска веб-приложений Sonatype Webby , которое похоже на директиву maven: запустить плагин Maven Jetty. Вы можете найти плагин на сайте обновления sonatypes для плагина M2e Webby - http://m2eclipse.sonatype.org/sites/m2e-webby/. После установки этого плагина вы можете Запустить конфигурацию и запустить веб-приложение из автоматической сборки, расположенной в {project}/target/m2e-webby.

enter image description here

Я рекомендую настроить один из (по умолчанию) встроенных Jetty-контейнеров в качестве поставщика для servlet-api. Если необходимо протестировать определенные среды выполнения, внешний контейнер можно легко настроить, перейдя в домашний каталог сервера и выбрав соответствующего поставщика.

Недостатки, с которыми я столкнулся, довольно незначительны:

  • Веб-приложения должны быть закрыты вручную, перезапуск отсутствует.
  • Каждое веб-приложение должно запускаться на отдельном порту, они не разделяют экземпляр контейнера.
0 голосов
/ 22 сентября 2010

Вы получаете сообщение «Невозможно прочитать файл TLD« META-INF / c.tld »из файла JAR»: .. g / workspace / .metadata / .plugins 'с текущей версией плагина m2eclipse с указанной выше конфигурацией.

Вам необходимо удалить servlet-api.jar и jsp-api.jar из папки lib / развернутых проектов, чтобы исправить вышеуказанную ошибку, и настроить пользовательскую конфигурацию сборки так, чтобы 2 файла не копировались в каталог развертывания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...