2012-05-19 24 views
18

mam 3 maven projektówMaven - Jak zbudować wiele projektów Niezależne Maven z jednego projektu

  • WebComponents
  • DataComponents
  • ServiceComponents

gdy budować każdy z tych projektów mam aby przejść do każdego folderu i uruchomić instalację mvn clean na każdym z projektów.

Przyjrzałem się projektom wielomodułowym, a większość dostępnych zasobów sugeruje, że muszę zmienić strukturę moich istniejących projektów.

Czy możliwe jest posiadanie nowego projektu, który będzie budował każdy z niezależnych projektów bez konieczności wprowadzania jakichkolwiek zmian w istniejącym projekcie, w tym w jego indywidualnych plikach pom?

Prawdopodobnie uda mi się to osiągnąć, pisząc prosty plik wsadowy, który buduje wszystkie projekty, ale czy jest to możliwe przy użyciu Maven?

Odpowiedz

30

Szukasz Maven aggregation without inheritance. Jak pokazano na przywołanej stronie, wystarczy utworzyć nowy POM, którego opakowanie to "pom" i które ma listę "modułów". Moduł jest względna ścieżka do innego projektu Maven:

<project> 
    ... 
    <packaging>pom</packaging> 
    ... 
    <modules> 
    <module>foo</module> <!-- module is in a subdirectory of this project --> 
    <module>../bar</module> <!-- module is a sibling to this project --> 
    <module>../../../other-projects/baz</module> <!-- somewhere else entirely --> 
    </modules> 
</project> 

domyślne zachowanie podczas budowy takiego pom - znany jako „agregator” - jest budowanie wszystkie moduły jak gdybyś realizowanych w Maven każdy katalog modułów z tymi samymi argumentami.

5

Po dodaniu projektu agregatora do katalogu nad trzema projektami, które nazywają je modułami (nazwa modułu = nazwa podkatalogu), zostaną one zbudowane bez potrzeby wprowadzania zmian we własnych POM. Nie muszą określać tego jako rodzic.

+0

To była wielka pomoc dzięki! – NiranjanBhat

Powiązane problemy