Intellij IDEA деплой на Tomcat

Хочу показать как можно быстро тестировать проект прям с IDE Intellij IDEA, а также расскажу плюсы от этого.

Шаг 0. Для чего это нужно?

Думаю вы уже работали над разработкой Java EE проектов ивам приходилось проверять его после написания очередной фитчи, а даже если не приходилось то придётся :)

Deploy — процесс развертывания (распаковки) проекта на сервере приложений.

О серверах приложений можно почитать тут. Так вот стандартный процесс деплоя:

1. Вы либо в ручную через Admin Panel или же через Console деплоите;

2. Вы  используете Maven, Ant либо Gradle инструмент для этого.

Но не первый не второй способ не совсем удобный если вам к примеру нужно провести Debug проекта и отловить неисправность. И это одна из значительных причин использовать способ о котором я расскажу ниже.

Давайте теперь познакомимся собственно со способом деплоя используя Intellij IDEA.

 

Шаг 1. Готовим проект

Для того чтобы продемонстрировать данный способ мне необходимо иметь пример проекта для деплоя. Я буду использовать проект с этого урока Spring 3. JavaConfig на примере Spring MVC.

В скачанном вами проекте для деалоя на Tomcat необходимо в pom.xml добавить еще одну зависимость:

<dependency>
	<groupId>jstl</groupId>
	<artifactId>jstl</artifactId>
	<version>1.2</version>
</dependency>

Открываем проект, справа в меню Maven Project выбираем clean | install как показано на изображении ниже, таким образом мы соберем наш проект и в итоге у нас получится war файл, который мы будем деплоить на сервер:

После этого в корне проекта появится папка target и в ней будет лежать ваш war архив.

Дальше нам нужно скачать сервер приложений Tomcat 8+ Скачать

Внимание! Вы можете использовать любой сервер приложения не обязательно Tomcat. Я рекомендую использовать его так как он лёгкий и быстро стартует.

 

Шаг 2. Конфигурируем Intellij IDEA для Deploy

Теперь в открытом вами проекте который вы хотите задеплоить, со студии IDEA выполните действия, которые показанные на изображении ниже:

После этого в появившемся окне нажмите на плюс и выберите Tomcat ServerLocal:

После этого вводим имя и нажимаем Configure выбираете где лежит скачанный и распакованный Tomcat и жмете ОК.

Теперь переходите во вкладку Deployment жмем плюсик выбираем Artifact:

B в появившемся окне выбираете свой Artifact war:

Жмете ОК дважды. Вот общая конфигурация, которая должна появится у вас:

 

Шаг 3. Run и Debug

После настройки вы можите либо просто запускать ваш проект со студии либо проводить Debug со студии в зависимости от режима:

Зеленый треугольник просто запускает проект, а точней деплоит его и запускает в выбранном вами браузере при конфигурации.

Зеленый жучек деплоит проект на сервер и запускает Debug режим, который позволит вам отловить ошибки.

После запуска я получу задеплоиный проект:

Зеленый индикатор в Deployment говорит о том что проект удачно развернулся на сервере.

И в браузере:

На этом все. Надеюсь я смог вам помочь.

Урок создан: 31 марта 2014 | Просмотров: 105391 | Автор: Александр Барчук | Правила перепечатки


Добавить комментарий

Добавить комментарий

Ваш e-mail не будет опубликован.

Комментарии:

  • 18 сентября 2014 в 17:26

    Влад

    Нажимаю на «+» и в настройках нету Tomcat.
    PS.У меня стоит Tomcat 7

  • 19 сентября 2014 в 13:29

    Влад

    Скриншот — http://s1.radikale.ru/uploads/2014/9/19/44deb3786672c1ecdf3615ac2e469e21-full.jpg

    • 19 сентября 2014 в 13:33

      Влад

      Может потому, что у меня не ЕЕ версия?

      • 27 июля 2015 в 14:27

        Максим

        А какая версия? В 12 Community еще Tomcat и другие сервера есть, в 13 и 14 уже вырезано

    • 20 сентября 2014 в 21:36

      Александр Барчук

      У вас скорее всего не Ultimate версия Intellij IDEA, у вас Community она урезана.

  • 23 февраля 2015 в 06:55

    Аноним

    При открытии пакета выдало ошибку:

    Spring Configuration Check
    Unmapped Spring configuration files found. Please configure/setup Spring facet for modules:

  • 16 марта 2015 в 20:02

    Иван

    При запуске проекта не обновляется содержимое папки %TOMCAT_HOME%\webapps. Логи:

    Connected to server
    [2015-03-16 08:32:02,554] Artifact Croc:war: Artifact is being deployed, please wait…
    [2015-03-16 08:32:03,331] Artifact Croc:war: Artifact is deployed successfully
    [2015-03-16 08:32:03,331] Artifact Croc:war: Deploy took 777 milliseconds

    И действительно запускается сервер, открывается страница в браузере, но не с приложением, а стартовая, но это было бы ничего, заходим в приложение, а там старая версия приложения, а все потому, что деплоится старая версия приложения, лежащая в %TOMCAT_HOME%\webapps.
    Как сделать так, чтобы автоматически обновлялось приложение в %TOMCAT_HOME%\webapps.
    И есть подозрение, что вообще не происходит никакого деплоя, хотя логи говорят обратное.

    • 13 июля 2015 в 20:05

      Виталий

      Можно настроить в конфигурации сервера, в меню «Before launch» автоматическую сборку war-а перед каждым запуском вместо Make. Щелкните на Make, чтобы подсветить его полосой выделения, далее: над строкой с Make есть плюс, минус и карандашик, означающие соответственно добавление, удаление и редактирование пункта этого меню. Вместо Make наберите словами «clean install», это команды мавена для сборки war-а, которые в результате будут выполняться автоматически после каждого нажатия кнопки Run

      • 17 марта 2016 в 14:54

        Иван

        Возникает точно такая же проблема.
        После запуска локального tomcat сервера %TOMCAT_HOME%\webapps не появляется
        Хотя написано что аритифакт успешно задеплоился. Если задеплоить отдельно руками то все ок.
        Есть подозрение что Idea разворачивает где то свой локальный томкат?

  • 05 апреля 2015 в 18:02

    Андрей

    А этот эксепшн может быть последствием неправильной установки или тут из другой оперы. локалхост:8080 работает исправно

    • 05 апреля 2015 в 18:03

      Андрей

      org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.pages.hello_jsp вот сам иксепшн

  • 07 апреля 2015 в 18:15

    Алексей

    Спасибо, помог разобраться.
    Все подробно очень подробно расписано

  • 10 апреля 2015 в 16:26

    cyc10ne

    У меня нет менюшки Artifact только External Source!

    • 24 августа 2015 в 22:00

      Евгений

      Тоже самое.. кто сталкивалса?

      • 24 октября 2015 в 06:45

        New

        и у меня нет артефактов! не могу ничего нагуглить. Как вы решили эту проблему?

      • 30 октября 2015 в 10:13

        Юрий

        Зделай следующее:
        Возьми нажми File/Project Structure/Artifacts после этого нажми «+» тогда выбери Web Application Exploded/From Modules. У тебя должно открыться окно с именем твоего проекта. Выбираеш его, жмеш ОК. После этого у тебя в artefacts появится новый артифакт. Жмеш Apply и перезапускаеш сервер

        • 12 июня 2017 в 13:40

          Анастасия

          Что делать если From Modules нет?

    • 06 февраля 2016 в 22:04

      yevhen

      в в файлі
      Pom.xml
      додай
      war

  • 23 апреля 2015 в 19:01

    Андре

    Спасибо за статью. Однако возникла проблема: с чем может быть связано, что при открытии http://localhost:8080/welcome возникает ошибка 404? Сам localhost открывается. Делал всё как написано.

    • 24 апреля 2015 в 17:46

      Андрей

      Спасибо, вопрос решился. Понял, что проект надо размещать в директории сервера.

  • 18 октября 2015 в 12:37

    Kirill

    У меня он устанавливает и работает хорошо, но есть НО! Он удаляет в папке «Root» исходный проект от tomcat (гостевая) и устанавливает туда мой проект! Мне это не нужно. Как сделать так, чтобы он отдельным проектом в «webapp» его клал?

  • 20 декабря 2015 в 15:27

    Игорь

    Подскажите почему при создании проекта, у меня не создается так сказать «Hello world» папка src не создается вообще

  • 18 января 2016 в 00:59

    Kirill

    Если использовать Idea CE, то для деплоя можно использовать tomcat7-maven-plugin, который успешно деплоит также на запущенный 8ой и 9ый томкат через web /manager, используя tomcat-user с необходимыми правами. А для деплоя на jetty есть jetty-maven-plugin, который через scanIntervalSeconds можно настроить так, чтобы он непрерывно работал и каждые несколько секунд проверял состояние проекта и редеплоил, если что-то в проекте изменилось.

  • 28 января 2016 в 14:09

    Android

    Чем war отличается от war exploded? Где можно почитать?

  • 19 июля 2016 в 12:39

    Павло

    Супер! Працює!)

  • 17 ноября 2016 в 08:51

    Аноним

    Что у вас с сайтом. больше 100 мб RAMа сожрал и жутко на процессор давит

  • 25 апреля 2017 в 13:38

    Антон

    Exploded будет быстрее и больше возможностей (например можно будет перезагрузить ресурсы без redeploy)