Хочу показать как можно быстро тестировать проект прям с 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 Server – Local:
После этого вводим имя и нажимаем Configure выбираете где лежит скачанный и распакованный Tomcat и жмете ОК.
Теперь переходите во вкладку Deployment жмем плюсик выбираем Artifact:
B в появившемся окне выбираете свой Artifact war:
Жмете ОК дважды. Вот общая конфигурация, которая должна появится у вас:
Шаг 3. Run и Debug
После настройки вы можите либо просто запускать ваш проект со студии либо проводить Debug со студии в зависимости от режима:
Зеленый треугольник просто запускает проект, а точней деплоит его и запускает в выбранном вами браузере при конфигурации.
Зеленый жучек деплоит проект на сервер и запускает Debug режим, который позволит вам отловить ошибки.
После запуска я получу задеплоиный проект:
Зеленый индикатор в Deployment говорит о том что проект удачно развернулся на сервере.
И в браузере:
На этом все. Надеюсь я смог вам помочь.
Также читайте: «Как создать Servlet? Полное руководство»
ПОХОЖИЕ ПУБЛИКАЦИИ
- None Found
31 комментариев к статье "Intellij IDEA деплой на Tomcat"
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.
Нажимаю на “+” и в настройках нету Tomcat.
PS.У меня стоит Tomcat 7
Там в самом низу как + нажмете должна быть кнопка показать остальные.
Уже давно не актуально, но для потомков. Если у вас ос-unix, то очень часто бывает так: вы поставили себе пароль и не настроили права в системе. Поэтому при поиске tomcat’a вы его там не найдете. Не важно в какую папку вы распаковали томкэт, чтобы idea его увидела, нужно дать ей доступ к распакованному томкэту, грубо говоря, идея не имеет прав лазить по вашей файловой системе, поэтому вы должны сначала проложить ей путь и после этого томкэт объявится в нужном месте. У мен сейчас такая проблема и сколько я не искал как это нормально исправить натыкался только на вот эту команду – chmod 777 fileName. Но это костыль
Скриншот – http://s1.radikale.ru/uploads/2014/9/19/44deb3786672c1ecdf3615ac2e469e21-full.jpg
Может потому, что у меня не ЕЕ версия?
А какая версия? В 12 Community еще Tomcat и другие сервера есть, в 13 и 14 уже вырезано
У вас скорее всего не Ultimate версия Intellij IDEA, у вас Community она урезана.
При открытии пакета выдало ошибку:
Spring Configuration Check
Unmapped Spring configuration files found. Please configure/setup Spring facet for modules:
При запуске проекта не обновляется содержимое папки %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.
И есть подозрение, что вообще не происходит никакого деплоя, хотя логи говорят обратное.
Можно настроить в конфигурации сервера, в меню “Before launch” автоматическую сборку war-а перед каждым запуском вместо Make. Щелкните на Make, чтобы подсветить его полосой выделения, далее: над строкой с Make есть плюс, минус и карандашик, означающие соответственно добавление, удаление и редактирование пункта этого меню. Вместо Make наберите словами “clean install”, это команды мавена для сборки war-а, которые в результате будут выполняться автоматически после каждого нажатия кнопки Run
Возникает точно такая же проблема.
После запуска локального tomcat сервера %TOMCAT_HOME%\webapps не появляется
Хотя написано что аритифакт успешно задеплоился. Если задеплоить отдельно руками то все ок.
Есть подозрение что Idea разворачивает где то свой локальный томкат?
А этот эксепшн может быть последствием неправильной установки или тут из другой оперы. локалхост:8080 работает исправно
org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.pages.hello_jsp вот сам иксепшн
Спасибо, помог разобраться.
Все подробно очень подробно расписано
У меня нет менюшки Artifact только External Source!
Тоже самое.. кто сталкивалса?
и у меня нет артефактов! не могу ничего нагуглить. Как вы решили эту проблему?
Зделай следующее:
Возьми нажми File/Project Structure/Artifacts после этого нажми “+” тогда выбери Web Application Exploded/From Modules. У тебя должно открыться окно с именем твоего проекта. Выбираеш его, жмеш ОК. После этого у тебя в artefacts появится новый артифакт. Жмеш Apply и перезапускаеш сервер
Что делать если From Modules нет?
в в файлі
Pom.xml
додай
war
“war”
Спасибо за статью. Однако возникла проблема: с чем может быть связано, что при открытии http://localhost:8080/welcome возникает ошибка 404? Сам localhost открывается. Делал всё как написано.
Спасибо, вопрос решился. Понял, что проект надо размещать в директории сервера.
У меня он устанавливает и работает хорошо, но есть НО! Он удаляет в папке “Root” исходный проект от tomcat (гостевая) и устанавливает туда мой проект! Мне это не нужно. Как сделать так, чтобы он отдельным проектом в “webapp” его клал?
Подскажите почему при создании проекта, у меня не создается так сказать “Hello world” папка src не создается вообще
Если использовать Idea CE, то для деплоя можно использовать tomcat7-maven-plugin, который успешно деплоит также на запущенный 8ой и 9ый томкат через web /manager, используя tomcat-user с необходимыми правами. А для деплоя на jetty есть jetty-maven-plugin, который через scanIntervalSeconds можно настроить так, чтобы он непрерывно работал и каждые несколько секунд проверял состояние проекта и редеплоил, если что-то в проекте изменилось.
Чем war отличается от war exploded? Где можно почитать?
Супер! Працює!)
Что у вас с сайтом. больше 100 мб RAMа сожрал и жутко на процессор давит
Exploded будет быстрее и больше возможностей (например можно будет перезагрузить ресурсы без redeploy)
Все зависимости подключил, как в уроке #3 S4AA, но аннотацию @EnableJpaRepositories() идея не видит и импорт import org.springframework.data.jpa.repository.config.EnableJpaRepositories; не подтягивается. Почему-то data горит красным, хотя зависимость org.springframework.data установлена. Не подскажите, в чем дело может быть?