Como modularizar um aplicativo Java (grande)?
Tenho um aplicativo bastante grande (vários MLOC) em mãos que gostaria de dividir em partes separadas mais sustentáveis. Atualmente, o produto é composto por cerca de 40 projetos Eclipse, muitos deles com interdependências. Isso por si só inviabiliza um sistema de compilação contínuo, porque ele teria que ser reconstruído muito a cada check-i
Existe uma maneira de "práticas recomendadas" de como
identificar peças que podem ser imediatamente separadasnterdependências de documentos visualmenteunangle o código existentehandle "patches" que precisamos aplicar às bibliotecas (atualmente tratadas colocando-as no caminho de classe antes da biblioteca real)Se houver ferramentas (livres / abertas) para suportar isso, eu gostaria de sugestõe
Embora eu não tenha nenhuma experiência com o Maven, parece que isso força um design muito modular. Gostaria de saber agora se isso é algo que pode ser adaptado iterativamente ou se um projeto que deveria usá-lo precisaria ser estruturado com a modularidade em mente desde o iníci
Edit 2009-07-10
Estamos no processo de dividir alguns módulos principais usandoApache Ant / Ivy. Ferramenta realmente útil e bem projetada, não impondo tanto a você quanto o mave
Anotei alguns detalhes mais gerais e opiniões pessoais sobre por que estamos fazendo isso no meu blog - muito tempo para postar aqui e talvez não seja interessante para todos, então siga a seu próprio critério: www.danielschneller.com