2010-06-22 31 views
8

Aujourd'hui, j'ai regardé les projets Maven Multi-Module et EAR et ils semblent assez similaires car ils semblent tous deux définir un assemblage d'une série d'autres projets - il semble presque qu'un projet EAR ne devrait être qu'un emballage alternatif pour un projet multi-module.Est-ce que les multi-modules Maven et EAR jouent bien ensemble?

Ai-je mal compris quelque chose? Ou est-ce que ces types de projets fonctionnent ensemble?


Après la réponse de Pascal: Mise à jour pour clarifier la question, espérons que cela aidera si ce n'est pas facile à comprendre; désolé c'est peut-être pas très bien exprimé, l'oreille est un peu nouveau pour moi ...

Donc disons que j'ai deux projets, l'un produisant une guerre et l'autre un pot utilitaire. La guerre dépend du pot et je dois les emballer dans une oreille pour le déploiement. Dois-je utiliser un projet avec un type d'emballage pom? Je suppose que je dois utiliser un projet avec un type d'emballage d'oreille quelque part pour produire l'artefact final, alors est-ce que je préfèrerais juste utiliser un projet avec des embouts auriculaires, ou des projets avec des embouts et des oreilles? Si les deux, comment?

+0

J'ai posé une question similaire (http://stackoverflow.com/questions/2821077/maven-all-or-parent-project-for-agrégation). Le fait est qu'il n'est pas toujours clair si vous devez utiliser un projet d'emballage qui dépend du projet qu'il contient, ou d'un projet multi-module. Le code source de l'emballage nécessite par exemple un multi-module, mais il n'y a pas de moyen (facile) de mettre en forme le code source pour vos dépendances. Les projets EAR devraient suivre la deuxième approche - pas le multi-module mais plutôt le dernier projet de la construction, en fonction du projet qu'il contient. –

Répondre

0

Ai-je mal compris quelque chose? Ou est-ce que ces types de projets fonctionnent ensemble?

Je ne suis pas sûr d'avoir compris la question, mais je suis tenté de répondre qu'ils travaillent ensemble:

  • modules Agrégation permettent de bien, les modules globaux et ils doivent avoir un emballage pom (et seuls les modules pom peuvent avoir des projets imbriqués).
  • Un module EAR est simplement un module avec un empaquetage ear (et a un bindings spécifique) et peut faire partie d'un projet multi-module.

Les deux ont des objectifs différents. Mais ils travaillent ensemble.

2

Les projets EAR fonctionnent parfaitement dans le cadre d'un projet global plus vaste. Dans les cas où vous ne voulez pas que l'EAR soit un projet distinct; vous pouvez toujours créer le fichier via un assemblage.

Cette approche est logique dans certains cas. Généralement, lorsque vous devez créer plusieurs versions de l'EAR ou lorsque vous souhaitez créer un grand fichier EAR, vous n'avez pas besoin de conserver l'artefact une fois créé.

J'ai utilisé cette approche pour gérer une norme d'entreprise qui exige que tous les fichiers déployables soient des fichiers EAR, même lorsque l'application est un fichier WAR unique. Un assembly peut créer l'EAR avec son fichier WAR unique et ses descripteurs de déploiement.