Pessoal,
Estou refatorando um projeto WEB utilizando as seguintes Tecnologias (JPA 2, JSF 2.1, EJB 3.1 e MAVEN 3).
Na nova arquitetura optei por encapsular cada Tarefa da minha aplicação em um EJB separado. Ficou + ou - assim:
Client
— .War
— Páginas Web
— Managed Beans (Meus Managed Beans invocam os EJBs de Tarefas)
Server
Camada Business (Session Beans)
— EJB Tarefa 1;
— EJB Tarefa 2;
Camada Modelo
— EJB Modelo
— DAOs;
— Entidades;
Modularizei dessa forma meus EJBs para que fosse fácil a manutenção de uma determinada Tarefa.
Adicionei Meu EJB Modelo como dependência no EJB Tarefa e assim como Dependência da camada Client.
Minha pergunta é:
Como faço para substituir um EJB (Dependência) após manutenção sem ter que fazer um novo deploy de tudo?
Imaginem que tive um problema na Tarefa 1, então realizei a manutenção devida e preciso substituir este EJB (jar).
Gostaria que, a cada execução meu projeto buscasse os meus EJBs sempre de um determinado repositório atualizado. Isso é possivel?
Preciso dessa força… Opiniões também são bem vindas.
Abraço
Não sei se entendi muito bem, mas me parece que você quer um cara que armazene sempre a última versão do jar que contém o EJB, e sempre que fizer build buscar a última versão em um repositório.
Se for isto você pode instalar um gerenciador de dependências e durante o processo de build obter a última versão do seu jar deste gerenciador de dependências.
Dá uma olhada no Archifactory, mas tem vários outros…
Olá Ivan,
Utilizo o Artifactory no meu ambiente de Desenvolvimento apenas para compartilhamos as libs entre os desenvolvedores.
Só não sei como configurar para que meu projeto recupere sempre meu jar(EJB) atualizado.
A grosso modo tentei fazer o seguinte:
- Substituir o jar diretamente na pasta aplication do glassfish, isso não rola pois o JAR está preso na JVM.
Não queria ter que reimplantar o projeto novamente, queria apenas substituir o jar.
Alguma ideia?
valeu
Eu acredito que em tempo de execução você não vai conseguir fazer, vai ter que parar o servidor e refazer o deploy. O que você pode fazer é alterar o número da versão do seu jar, assim ele vai ser salvo no Artifactory e quando o restante da equipe for mexer no projeto basta fazer o update/merge do pom.xml que será obtida a última versão do Artifactory
Ivan,
Desde já agradeço a ajuda.
Havia pensado no seguinte cara (vê se estou viajando rs…):
Posso manter um repositório no meu servidor (Uma espécie de espelho do que está implantado no Glassfish).
Após manutenção no meu EJB, atualizo este repositório, faço o Deploy novamente e reimplanto o projeto no Glassfish.
Só que dai entro em um detalhe que já testei e não obtive sucesso: como faço para implantar o projeto no Glassfish a partir do Maven?
Se não me engano tem um comando mvn glassfish:deploy mas precisa de algumas configurações no pom do projeto, porém tentei configurar mais não rolou.
abs,