Подтвердить что ты не робот

Как запустить проект Maven в Tomcat от Eclipse

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

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

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

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

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

Спасибо Gaurav

4b9b3361

Ответ 1

Использование плагина интеграции Maven Eclipse

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

Кроме того, я действительно рекомендую использовать плагин интеграции Maven Eclipse! Я использую версию из Sonatypes plugin repo 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 к сборке развертывания. После этого вы можете использовать директиву "Запуск на сервере" для загрузки ваших веб-приложений.

Setup deployment assembly

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

Ответ 2

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

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

<build>
    ...
    <plugins>
        <plugin>
            <artifactId>maven-eclipse-plugin</artifactId>
            <configuration>
                <wtpversion>1.5</wtpversion>
                ...
            </configuration>
        </plugin>
        ...
    </plugins>
    ...
</build> 

Ответ 3

Использование плагина интеграции Maven Eclipse и веб-бегуна

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

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

enter image description here

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

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

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

Ответ 4

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

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