Maven - jak zbudować wiele niezależnych projektów Maven z jednego projektu
Mam 3 projekty Mavena
- WebComponents
- DataComponents
- ServiceComponents
Kiedy buduję każdy z projektów, muszę wejść do każdego folderu i uruchomić mvn clean install na każdym z projektów.
Przyjrzałem się projektom wielomodułowym i większość zasobów, które widzę, sugeruje, że muszę zmienić strukturę moich istniejących projektów.
Czy jest możliwe posiadanie nowego projektu, który zbuduje każdy z niezależne projekty bez konieczności wprowadzania jakichkolwiek zmian do czegokolwiek w istniejącym projekcie, w tym ich indywidualnych plików pom?
Prawdopodobnie mogę to osiągnąć pisząc prosty plik wsadowy, który buduje każdy projekt, ale czy jest to możliwe przy użyciu Mavena?
2 answers
Szukasz agregacji Mavena bez dziedziczenia . Jak pokazano na odnośnej stronie, po prostu tworzysz nowy pom, którego opakowaniem jest " pom "i który ma listę "modułów". Moduł jest względną ścieżką do innego projektu Mavena:
<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ślnym zachowaniem podczas budowania takiego pom-u-znanego jako "agregator" - jest budowanie wszystkich modułów tak, jakbyś uruchomił Mavena w każdym katalogu z tymi samymi argumentami.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-19 19:11:00
Jeśli dodasz projekt agregatora do katalogu powyżej trzech projektów, które nazywają je modułami (Nazwa modułu = nazwa podkatalogu), zbuduje je bez potrzeby wprowadzania zmian we własnych Pomach. Nie muszą nazywać tego rodzicem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-19 15:05:43