2010-06-22 8 views
8

Heute habe ich mir Maven Multi-Module und EAR-Projekte angeschaut und sie scheinen mir ziemlich ähnlich zu sein, da beide eine Sammlung einer Sammlung anderer Projekte zu definieren scheinen - es scheint fast so, als ob ein EAR-Projekt nur eine alternative Verpackung sein sollte für ein Multi-Modul-Projekt.Spielen Maven Multi-Modul und EAR gut zusammen?

Habe ich etwas falsch verstanden? Oder arbeiten diese Arten von Projekten zusammen?


Nach Pascals Antwort: aktualisiert die Frage zu klären, das wird hoffentlich helfen, wenn es nicht leicht ist, zu verstehen; Entschuldigung es ist vielleicht nicht sehr gut formuliert, das Ohr Zeug ist irgendwie neu für mich ...

Also sagen, ich habe zwei Projekte, eines produziert einen Krieg und das andere ein Dienstprogramm Glas. Der Krieg hängt vom Glas ab und ich muss sie in ein Ohr für den Einsatz verpacken. Soll ich ein Projekt mit einer Pom Verpackung verwenden? Ich denke, ich muss irgendwo ein Projekt mit einem Ohrverpackungs-Typ verwenden, um das endgültige Artefakt zu produzieren, also verwende ich am besten nur ein Projekt mit Ohrverpackung oder Projekte mit Pom und Ohr? Wenn beide, wie?

+0

Ich stellte eine ähnliche Frage (http://stackoverflow.com/questions/2821077/maven-all-or-parent-project-for-aggregation). Der Punkt ist, dass es nicht immer klar ist, ob Sie ein Verpackungsprojekt verwenden sollten, das von dem Projekt abhängt, das es verpackt, oder von einem Multi-Modul. Quellcode für die Verpackung erfordert beispielsweise mehrere Module, aber es gibt keinen (einfachen) Weg, Quellcode für Ihre Abhängigkeiten zu packen. EAR-Projekte sollten dem zweiten Ansatz folgen - nicht Multi-Modul, sondern das letzte Projekt im Build, abhängig von dem Projekt, das es verpackt. –

Antwort

0

Habe ich etwas falsch verstanden? Oder arbeiten diese Arten von Projekten zusammen?

Ich bin mir nicht sicher, ob ich die Frage verstanden, aber ich bin versucht zu antworten, dass sie zusammen arbeiten:

  • Aggregieren Module ermöglichen, na ja, Aggregat-Module und sie müssen eine pom Verpackung haben (und nur pom Module können verschachtelte Projekte haben).
  • Ein EAR-Modul ist nur ein Modul mit einer ear Verpackung (und hat spezifische bindings) und kann Teil eines Multi-Modul-Projekts sein.

Beide haben unterschiedliche Zwecke. Aber sie arbeiten zusammen.

2

EAR-Projekte funktionieren problemlos als Teil eines größeren aggregierten Projekts. In Fällen, in denen Sie nicht möchten, dass die EAR ein separates Projekt ist; Sie könnten die Datei immer über eine Assembly erstellen.

Dieser Ansatz ist in einigen Fällen sinnvoll. Normalerweise müssen Sie mehrere Versionen der EAR erstellen oder wenn Sie eine große EAR-Datei bereitstellen möchten, aber das erstellte Artefakt nicht beibehalten müssen.

Ich habe diesen Ansatz verwendet, um mit einem Unternehmensstandard umzugehen, der alle implementierbaren EAR-Dateien erfordert, selbst wenn es sich bei der Anwendung um eine einzelne WAR-Datei handelt. Eine Assembly kann das EAR mit einer einzelnen WAR-Datei und Deployment-Deskriptoren erstellen.