Pessoal, desculpe-me se minha dúvida estiver no lugar errado.
Desenvolvi um sistema que, atualmente, serve para 5 clientes diferentes.
O código e as bibliotecas são exatamente iguais para todos eles, as regras que são diferentes para cada cliente eu trato no código (não é a melhor das soluções, mas enfim…).
Toda vez que altero algo, preciso modificar os arquivos de configuração (persistence, components, jboss-web, etc), empacotar o código em um .war e subir o arquivo. Repito essa operação para cada cliente, que agora são apenas 5, mas logo serão uns 20. Ou seja, logo terei que subir 20 códigos!!!
Seria perfeito se eu pudesse fazer algo do tipo: todo meu código (view, controller, entidades, bibliotecas) em um lugar, e os arquivos de configuração de cada cliente em outro.
Isso é possível? Teria que usar EJB, não é mesmo?
[quote=samerjamal]Pessoal, desculpe-me se minha dúvida estiver no lugar errado.
Desenvolvi um sistema que, atualmente, serve para 5 clientes diferentes.
O código e as bibliotecas são exatamente iguais para todos eles, as regras que são diferentes para cada cliente eu trato no código (não é a melhor das soluções, mas enfim…).
Toda vez que altero algo, preciso modificar os arquivos de configuração (persistence, components, jboss-web, etc), empacotar o código em um .war e subir o arquivo. Repito essa operação para cada cliente, que agora são apenas 5, mas logo serão uns 20. Ou seja, logo terei que subir 20 códigos!!!
Seria perfeito se eu pudesse fazer algo do tipo: todo meu código (view, controller, entidades, bibliotecas) em um lugar, e os arquivos de configuração de cada cliente em outro.
Isso é possível? Teria que usar EJB, não é mesmo?
Alguém poderia me dar uma luz sobre essa questão?
Abraços!!![/quote]
Sua análise me parece que parte de software e não de negócio, assim fica difícil modelar uma boa solução.
Então, você pode sim manter todos esses arquivos separados e usar, por exemplo, um build de ant diferente para cada cliente, ou igual, mudando apenas alguma configuração num arquivo de properties…
O Ant seria usado apenas pra montar o projeto, independente de que tecnologia se utiliza.
Quanto a montar somente com o código que você precisa, depende de como você estruturou seu projeto, se está tudo hardcoded esquece, você precisa de refactoring urgente antes que isso se torne um monstro.
Completando o que o Tchello falou (usar o ANT para o build com um build.properties para cada cliente) seria interessante também que você criasse branches específicas para cada cliente no seu repositório de controle de versão, assim vocês iriam aplicando os bug-fixes e novas funcionalidades na branch de cada cliente não correndo o risco de quebrar alguma coisa…
Você está usando um controle de versão, não esta??