Estou executando o Intellij Ultimate com o Tomcat e implanto uma guerra. Tudo é implementado corretamente no diretório webapp do tomcat.
Quando altero um arquivo como um arquivo xhtml, existe uma maneira do tomcat captar automaticamente essa alteração? A partir de agora, eu preciso copiar o arquivo do Intellij e copiá-lo para o diretório em que ele reside no diretório do aplicativo da web tomcat. Eu sei que existem certos arquivos que precisarão de uma recompilação, mas xhtmls não são um deles.
Isso não pode ser feito se você implantar uma guerra com o IntelliJ IDEA. No entanto, pode ser se você implantar uma guerra explodida . Na IDEA:
my-webapp-name:war
my-webapp-name:war exploded
Agora, sempre que você fizer uma alteração, o IDEA reimplementará o (s) arquivo (s) alterado (s) quando o quadro do IDEA for desativado (isto é, perde o foco). Demora um ou dois segundos. Você o verá na barra de status inferior do IDEA. Obviamente. você ainda precisará atualizar o navegador da Web para buscar o novo arquivo (a menos que a página tenha uma atualização automática do ajax, como busca).
Uma boa combinação com o Tomcat é definir "Desativação no quadro" como "Atualizar recursos" e a ação "Ao 'atualizar' para" Reimplantar "ou" Reiniciar servidor ". Isso permite que as páginas estáticas sejam atualizadas rapidamente por meio da desativação do quadro e classe atualizada por meio da ação 'update'.
Uma empresa chamada ZeroTurnaround vende JRebel, que é uma solução dinâmica para carregadores de classes . Eles também têm uma série de cinco partes sobre o assunto, que é muito boa.
fonte
Error: Artifact 'my-webapp-name:war exploded' has invalid extension
como corrigir?Se você deseja atualizar classes e recursos, execute o Tomcat no modo de Depuração . Nesse modo, o IntelliJ atualiza classes e recursos sem problemas (hot swap).
Tenho o mesmo problema. O IntelliJ não atualizou meu projeto, porque eu executo como "Modo de Execução". Quando eu corro modo de depuração e pressiono Ctrl+ F10, ele atualiza classes e recursos.
fonte
Eu encontrei uma maneira melhor.
No Eclipse, criamos, compilamos + recarregamos arquivos estáticos automaticamente. Na verdade, os arquivos estáticos são servidos diretamente do src / main / webapp .
No IntelliJ, em vez de servir diretamente do src / main / webapp , existe uma pasta criada no destino, na qual você terá uma cópia do seu src / main / webapp e também outros contextos relacionados. Web-inf / classes / lib.
Se você colocar, em vez do destino, a saída do artefato explodido para src / main / webapp , ele não substituirá os arquivos de origem e servirá diretamente, você não precisará pressionar - atualizar recursos / atualizar recursos e classes
Então, o que você precisa fazer no IntelliJ é
Depois disso, se você tiver tarefas que alteram arquivos estáticos de fora do IntelliJ, você verá alterações imediatamente sem acessar o IntelliJ e Atualizar Recursos , e para as classes em que a macro é salva e compilada (Nota: você também pode pressionar Compilar / Recompile: cmd + shift + F9 / cmd + F9 - se você tiver vários editores abertos, verá que seus editores * sujos não estarão sujos e as alterações (classes) serão recarregadas)
fonte
Isso é possível apenas quando você implanta a pasta war explodida, habilita o recarregamento a quente e inicia o tomcat no modo de depuração.
Estes são os passos para conseguir isso.
fonte
se você tiver arquivos com várias partes que deseja visualizar / reproduzir imediatamente, faça o upload diretamente na pasta de destino. * (altere apenas o local de gravação para a pasta de destino / static /)
você poderá visualizar seu arquivo imediatamente sem precisar reiniciar seu IDE
fonte