Quero fazer um novo projeto para Web com EJB no NetBEans 7.3. Dai comecei Novo Projeto....Maven...Aplicação Enterprise, mas daí ele me criou 4 módulos: Projeto (Maven Archetype), Projeto-ear, Projet-ejb, Projeto-web Cada um com o seu pom è assim mesmo? Como eu incluo as dependências, só no pom do primeiro? Os módulos estão "ligados" de alguma forma?
Não é obrigatório que seja assim não, mas essa é uma maneira. Um dos projetos deve ser o “parent”, e os outros devem ser os módulos filhos (ear, ejb e web). Cuidado que o local onde você declarar as dependências faz diferença sim, por conta da relação de herança entre o projeto “parent” e seus fllhos.
Supondo que a estrutura seja mesmo o que eu estou pensando, cuidado com o seguinte:
Dependências colocadas no pom do projeto ear serão colocadas dentro de “lib”.
Dependências colocadas no pom do projeto web serão colocadas dentro de “web-inf/lib”
Dependências declaradas no parent, são herdadas por todos, inclusive pelo ear e pelo web, o que vai significar que as libs serão duplicadas no “lib” e no “web-inf/lib” e isso pode ser um grande problema.
Minha recomendação é, coloque no parent project as dependências que classificar como “provided”, no ear as dependências classificadas como “compile” que sejam comum a todos os módulos ou as que sejam necessidade do módulo ejb, e no módulo war coloque somente as libs “compile” que sejam exclusivamente usadas pelo módulo WEB.