Um projeto M2ECLIPSE/WTP de vários modelos pode obter módulos utilitários implantados nas classes web-inf/?

StackOverflow https://stackoverflow.com/questions/3405653

Pergunta

Atualmente, usamos o Myeclipse com sua integração embutida do MAVEN4MYECLIPSE e seu suporte de servidor J2EE interno, mas queremos converter para o Eclipse regular (especificamente Helios) para poder usar sua instalação de 64 bits no Windows. (O Myeclipse ainda não suporta 64 bits no Windows.)

Até agora, eu tenho um protótipo de funcionamento do Helios Eclipse usando o M2eclipse com o plug -in WTP implantando nosso grande aplicativo da Web no TomCat. A implantação é um pouco intensivo no processador, mas funciona e o aplicativo é iniciado.

O que é criticamente diferente aqui é como os projetos dependentes são implantados. Em nosso ambiente de myeclipse, todos os projetos dependentes foram implantados explodidos na pasta Web-Inf/Classes e, assim, enquanto o servidor estava em execução, uma alteração para uma classe Java no IDE copiaria apenas o (s) arquivo (s) afetado para o Web-Inf/Classes do servidor e troca a quente na classe na JVM e ... boom-alteração ao vivo no servidor. Ótimo para depuração.

Na minha conversão de Helios, no entanto, todos os projetos dependentes são Jared e colocados na Web-Inf/Lib. Isso tem a vantagem de realmente se parecer com a aparência de nossa imagem de produção criada pelo Maven, mas o ambiente de desenvolvimento é severamente desfavorecido com isso, pois a capacidade de troca de quente parece estar totalmente perdida. Aqui, se eu alterar uma classe Java em um projeto dependente, o M2ECLIPSE irá recolocar novamente o frasco, verá que o aplicativo Web implantado está fora de sincronia e republicá todo o aplicativo. Isso não é apenas um problema, pois todo o aplicativo da Web precisa andar de bicicleta (algo que o nosso francamente não se sai bem, devido ao seu tamanho e enorme tempo de inicialização), mas também um atraso desagradável no eclipse em sua republicação. (Para nossa aplicação, isso leva cerca de um minuto ou dois.)

Então, minha pergunta é a seguinte: existe uma maneira de obter alterações dentro de projetos dependentes para trocar a quente para a JVM em execução e substituir arquivos implantados sem essa penalidade desagradável da republica? Estou assumindo que isso significa implantar esses arquivos de classe nas classes da Web-Inf/, mas não sei ao certo que é (a) possível ou (b) realmente necessário como parte desta solução.

O que os outros estão fazendo para resolver isso? É solucionável?

Desde já, obrigado!

Foi útil?

Solução

Eu acho que você está procurando a solução descrita em Re: implantação quente do WTP Tomcat com M2eclipse:

Se você ativar a opção "Módulos de servir sem publicação", um frasco especial será adicionado ao servidor Tomcat, que permite que o suporte do TomCat no WTP controlasse o "caminho de classe" do aplicativo da Web. Além disso, os projetos de serviços públicos não são montados em potes. Em vez disso, as pastas de saída Java dos projetos de utilitário estão incluídos no "Path Class" do aplicativo da Web, atendendo efetivamente os arquivos de classe diretamente. Se você desativar o carregamento automático do contexto e executado no modo de depuração, as alterações que você faz nas classes podem ser substituídas pelo código quente para que o contexto não precise recarregar. Eu acredito que isso realizará o que você está procurando.

Fazer isso:

  • Vou ao Servidor Visão
  • Duplo click Seu servidor tomcat para abrir as configurações do servidor
  • Dentro Opções do servidor, selecione os Servir módulos sem publicar opção
  • Dentro Publicação, selecione os Nunca publique automaticamente opção
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top