Maven + Aplicação Distribuída

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,