Gostaria de configurar o eclipse e o tomcat de maneira integrada, de forma que as alterações em meus JSPs e servlets (se possível) sejam refletidas imediatamente, sem exigir uma implantação.
Ok, essa é uma daquelas perguntas que tem muitas respostas em toda a internet, mas todas parecem diferentes. (use o plugin Sysdeo, use o plugin JBOss, faça coisas com um Eclipse desatualizado, use MyEclipse, etc.) e não consegui encontrar um recurso definitivo para me referir. Então, para meu benefício, qual é o procedimento mais simples e recomendado para fazer isso?
Isso pressupõe que eu tenho Eclipse e Tomcat funcionando de forma independente. Na verdade, consegui integrá-los de uma maneira não quente, usando as instruções aqui: http://www.ibm.com/developerworks/opensource/library/os-eclipse-tomcat/index.html
Versão do Eclipse Versão: 3.4.2 (Ganymede) Tomcat v6.0.20
Respostas:
Existem duas opções.
Primeiro, o Eclipse permite que você faça isso, com uma ligeira mudança de configuração (veja também esta postagem detalhada )
Isso ainda refletirá as alterações de código, mas não reiniciará o servidor.
Em segundo lugar, usei o plug-in FileSync por muito tempo:
WEB-INF/classes
a instalação do seu tomcat (isso é quase o mesmo que configurar o assembly de implantação)Funciona perfeitamente para mim dessa forma. Cada mudança não estrutural é refletida imediatamente, sem redistribuição.
Atualização:
você pode ler mais sobre os métodos de implantação a quente aqui .
eu também criei um projeto que sincroniza facilmente o espaço de trabalho com o contêiner de servlet.
fonte
Modules
na aba na configuração do servidor, depois cliqueedit
, desmarqueauto deploy enabled
, acho que esta é a maneira mais simples. PS: sua primeira maneira não funciona para mim.Simplesmente deixe o eclipse gravar os arquivos de classe diretamente no diretório $ TOMCAT / webapps / MyWebApp / WEB_INF / classes. Em seguida, configure o apache-tomcat para verificar se os arquivos de classe foram atualizados e recarregue-os se tiverem sido.
Para configurar o tomcat para recarregar automaticamente uma classe quando ela muda, você precisa
editar
$TOMCAT/conf/context.xml
e definir:Você também pode ter que editar e recarregar seu
webapps/$YourWebApp/web.xml
arquivo e incluir:Não me lembro se as duas mudanças são necessárias, mas foi assim que configurei meu tomcat-6.0.18 para recarregar automaticamente.
fonte
Context
elementos no arquivo server.xml, mas deve monitorar / WEB-INF / classes / e / WEB-INF / lib para quaisquer alterações. Onde você leu sobre o atributo doweb-app
elemento?Aviso : Sou apenas um cliente satisfeito, não trabalho para a Zero Turnaround e não sou afiliado de forma alguma a eles.
Confira o JRebel - ele permite que você codifique sem reiniciar o aplicativo da web. Basicamente, ele funciona instrumentando suas classes e adaptando suas mudanças. Ele lida com muitos mais casos do que a implementação a quente , incluindo:
É comercial ( detalhes de preços , US $ 550 / ano em junho de 2018) e tem muitos plug-ins para estruturas de terceiros, incluindo:
Você obtém uma avaliação gratuita sem dor - sugiro que experimente .
fonte
Altere seu espaço de trabalho no Eclipse para \ tomcat \ webapps. Como é apenas para o seu trabalho, isso deve funcionar bem. Quaisquer mudanças feitas no Eclipse estão no mesmo diretório, o tomcat procura aplicativos para implantar
fonte
Na visualização dos servidores, crie um novo servidor, não adicione nenhum recurso (projeto) ao servidor ainda. Clique duas vezes no servidor na localização dos servidores. Escolha "Usar instalação do tomcat". Modifique "Deploy path" para o diretório de implantação do tomcat (Ex: c: \ server \ Tomcat 7.0.14 \ webapps). Estenda a "Seção de publicação". Marque "Publicar automaticamente após um evento de construção". Salvar e fechar. No menu do eclipse, marque "Projeto -> Construir automaticamente". Na visualização dos servidores, clique com o botão direito do mouse em seu servidor, "Adicionar e remover" para publicar seu projeto.
fonte
Por que não usar um servidor Tomcat integrado com o Eclipse se for apenas para desenvolvimento? Você pode configurar servidores em janela-> preferências. Depois de configurado, se você tiver um jsp chamado page.jsp, você pode clicar com o botão direito nele e selecionar executar no servidor. Em preferências-> geral-> navegador da Web você pode escolher o clima para usar o navegador embutido ou um externo. Faça algumas alterações em seu jsp, salve e atualize sua página a partir do navegador. As alterações serão refletidas automaticamente assim que você salvar e atualizar seu navegador.
fonte
O que funciona para mim aqui é:
context.xml assim:
Então, na guia Servidores no Eclipse, na guia "Módulos", desativei o "Auto Reload" para todos os módulos sendo implantados.
Deixe também a configuração padrão para permitir a publicação automática.
E está usando Maven com WTP, não se esqueça de deixar o conteúdo de src / main / resources dentro, pois o Eclipse insiste em excluir o conteúdo desta pasta da compilação final.
Só com tudo isso eu consegui classes full (VM) hot-deploy com recursos hot-deploy !!!
fonte
Em seu ambiente de desenvolvimento, basta apontar seu servidor Tomcat para procurar JSPs em qualquer diretório em que você os está desenvolvendo. Assim que salvar o arquivo, você poderá ver as alterações.
fonte
Consegui fazer isso funcionar em meu ambiente de desenvolvimento usando o agente JVM Spring Loaded . Embora eu desenvolva aplicativos da web Spring, a descrição do projeto menciona que é
Usando a configuração a seguir, consegui obter alterações para publicar automaticamente em uma instância do Tomcat anexada (o método usual do Eclipse WTP). Estou usando o Spring Tool Suite 3.7.3 baseado no Eclipse Mars.2 (4.5.2).
-javaagent:/path/to/downloaded/springloaded-1.2.5.RELEASE.jar -noverify
.class
arquivos do projeto , configure o-Dspringloaded=watchJars=
argumento VM de acordo com os comentários deste problema .Inicie o servidor e publique projetos de aplicativos dinâmicos da Web nele como de costume. Mais uma vez, fui capaz de testar isso com aplicativos da web Spring. Por exemplo, modificar o código, adicionar / subtrair métodos, etc. nas classes @Controller foram aplicados quase que instantaneamente depois que salvei o arquivo e o Eclipse construiu e publicou a classe alterada. Por último, a seção FAQ do projeto Spring Loaded mencionou alguns casos em que as coisas não recarregam, portanto, seria necessário reiniciar o servidor / aplicativo. Mas essas exceções são muito menos frequentes.
Mais uma observação: isso NÃO funciona com o Pivotal tc Server ou VMware vFabric tc Server que vem com o STS. Para esses servidores, há uma opção "Habilitar recarregamento baseado em Agente Java (experimental)", mas que usa a versão 1.2.0 anterior do Spring Loaded, que não funcionou para mim.
fonte
Spring
, Que tal aNon Spring
aplicação.Você está aberto para usar o Jetty para fins de desenvolvimento?
Em caso afirmativo, é muito simples de usar com Maven - basta executar
mvn jetty:run
fonte
Essa pode não ser a melhor maneira, mas funciona para mim.
Eu uso um comando rsync para sincronizar as alterações do meu projeto jsp para o $ contextPath.
Use a depuração remota no Eclipse para Tomcat, que permitirá a troca automática de código limitada. Se você alterar os campos estáticos ou adicionar métodos, precisará exportar o jar e reiniciar o contexto.
fonte
podemos usar a opção abaixo? Dê um duplo clique em Server in eclipse -> Server Locations -> Use tomcat installation. Ele assume o controle da instalação do tomcat. Você não precisa reiniciar o servidor para alterações nas classes java.
fonte
Encontrei uma maneira mais simples: uso de links simbólicos: acho que é a maneira mais rápida porque não há sincronização: o diretório do tomcat e o diretório do seu projeto serão o mesmo diretório o tempo todo.
O Tomcat detectará periodicamente as mudanças e reimplantar seu aplicativo.
Também existe uma maneira de depurar seu aplicativo, então, humildemente, acho que é uma boa solução.
Documentei minha solução aqui , para qualquer pessoa interessada.
fonte
Caso você esteja com pressa:
voila! :)
fonte
No Eclipse, clique em Projeto no menu superior e certifique-se de que “Construir Automaticamente” esteja selecionado. Isso resolveu meu problema. Eu estava executando o Eclipse com Tomcat usando meus metadados de espaço de trabalho. Eu também estava executando o Maven em um projeto de Módulo Web Dinâmico. Para verificar, adicione seu aplicativo ao Tomcat. Inicie o Tomcat de dentro do Eclipse. Certifique-se de que seu aplicativo esteja implantado e em execução. Abra a guia Console no Eclipse. Faça uma alteração em seu aplicativo. Após alguns segundos, você deve ver sua alteração sendo construída e implementada automaticamente no Tomcat.
fonte
Mais simples e rápido: configure o Eclipse para gerar um arquivo WAR ao construir; como uma etapa de pós-construção, copie o arquivo WAR para o diretório webapps do tomcat. O Tomcat reconhecerá a mudança e atualizará o site sem a necessidade de implantação. Observe que isso não é perfeito; os usuários que usam esse webapp podem ter uma experiência inferior à ideal, pois o Tomcat reinicia o webapp "sob" eles; mas isso atende ao seu pedido.
fonte