Я использую Intellij Ultimate с Tomcat и разверну войну. Все нормально разворачивается в каталог веб-приложений tomcat.
Когда я изменяю файл, такой как файл xhtml, есть ли у tomcat способ автоматически подобрать это изменение? На данный момент мне нужно скопировать файл из Intellij и скопировать его в каталог, где он находится в каталоге веб-приложения tomcat. Я знаю, что есть определенные файлы, которые нужно будет перекомпилировать, но xhtmls не является одним из них.
Это невозможно сделать, если вы развернете войну с IntelliJ IDEA. Однако это может произойти, если вы развернете взорванную войну . В ИДЕИ:
my-webapp-name:war
my-webapp-name:war exploded
Теперь каждый раз, когда вы вносите изменения, IDEA повторно развертывает измененные файлы, когда кадр IDEA деактивируется (т.е. теряет фокус). Это займет секунду или две, вы увидите это в нижней строке состояния в IDEA. Очевидно. вам все равно нужно обновить веб-браузер, чтобы он загружал новый файл (если, конечно, на странице не установлено автоматическое обновление типа AJAX, например fetch).
Хорошая комбинация с Tomcat - установить «Деактивация фрейма» на «Обновление ресурсов», а действие «Вкл. Обновление» на «Повторное развертывание» или «Перезапуск сервера». Это позволяет быстро обновлять статические страницы с помощью деактивации фрейма, и класс обновляется с помощью действия «обновление».
Компания под названием ZeroTurnaround продает JRebel, который представляет собой динамическое решение для загрузчика классов. У них также есть серия из пяти частей на эту тему, которая очень хороша.
источник
Error: Artifact 'my-webapp-name:war exploded' has invalid extension
как исправить?Если вы хотите обновить классы и ресурсы, запустите Tomcat в режиме отладки . В этом режиме IntelliJ обновляет классы и ресурсы без проблем (горячая замена).
У меня такая же проблема. IntelliJ не обновил мой проект, потому что я запускаю как «Режим запуска». Когда я запускаю в режиме отладки и нажимаю Ctrl+ F10, он обновляет классы и ресурсы.
источник
Я нашел лучший способ.
В Eclipse мы автоматически собираем, компилируем + перезагружаем статические файлы. На самом деле статические файлы обслуживаются непосредственно из src / main / webapp .
В IntelliJ вместо непосредственного обслуживания из src / main / webapp существует папка, созданная в target, в которой у вас будет копия вашего src / main / webapp а также другой связанный с контекстом web-inf / classes / lib.
Если вы поместите вместо цели вывод разнесенного артефакта в src / main / webapp , он не будет перезаписывать ваши исходные файлы и будет обслуживать напрямую, вам не придется нажимать - обновлять ресурсы / обновлять ресурсы и классы
Так что вам нужно сделать в IntelliJ
После этого, если у вас есть задания, которые изменяют статические файлы извне IntelliJ, вы увидите изменения немедленно, не переходя к IntelliJ и Update Resources , а для классов у вас есть этот макрос, который сохраняет и компилирует (Примечание: вы также можете просто нажать Compile / Перекомпилировать: cmd + shift + F9 / cmd + F9 - если у вас есть несколько открытых редакторов, вы увидите, что ваши грязные * редакторы будут не грязными, а изменения (классы) будут перезагружены)
источник
Это возможно только при развертывании развернутой папки war, включенной горячей перезагрузке и запуске tomcat в режиме отладки.
Это шаги для достижения этого.
источник
если у вас есть мультифайлы, которые вы хотите просмотреть / воспроизвести сразу, загрузите их прямо в целевую папку. * (только изменить место записи в целевую папку / static /)
вы сможете сразу же просмотреть файл, не перезапуская IDE
источник