Mam obecnie około 16 projektów, które buduję z mavenem, które zostaną wdrożone na tym samym serwerze aplikacji, które tworzą coś w rodzaju "portalu". Zbudowałem macierzystą pompę pom w celu obsługi typowych zależności i konfiguracji wtyczek. Obecnie moja struktura SVN wygląda podobnie:Projekt wielu modułów maven z nadrzędnym układem pom i svn
portal_root
+project1
+tags
+branches
+trunk
+project2
.
.
.
+projectn
pom.xml
Poszczególne projekty są wdrażane osobno. Oznacza to, że projekt1 nie ma zależności od projektu2, a każdy z nich można modyfikować i wdrażać bez konieczności modyfikowania czegokolwiek innego.
To przedstawia problem z SVN, tak jakby inny programista chciał sprawdzić cały katalog "portalu" (aby uzyskać także główną czcionkę), domyślnie usuwałby kopie wszystkich tagów i gałęzi! Niezupełnie idealny.
Jedyne co mogę myśleć jest użycie coś takiego:
portal_root
+tags
+branches
+trunk
+project1
+src
pom.xml
+project2
.
.
.
pom.xml
Jednak teraz wszystkie zmiany w projekcie będą śledzone w folderze tagi. Nie jest to dla mnie ogromny problem, ale rozgałęzianie wydaje się teraz być bólem.
Obecnie pracuję nad podłączeniem do tego Teamcity, co byłoby teraz nieco łatwiejsze, ponieważ musiałbym oglądać tylko jeden katalog (np. Tagi), aby wychwycić wszystko, co musi zostać zbudowane. Wdrażam też artefakty do korporacyjnego repozytorium Nessus.
Mam nadzieję, że ktoś może dać mi kilka sugestii tutaj, ponieważ nie byłem w stanie znaleźć żadnej przyzwoitej dokumentacji, która mówi o całym cyklu życia i najlepszych praktykach tutaj.
Podoba mi się pomysł, aby móc budować i wdrażać wszystkie projekty za pomocą jednego polecenia maven. Lubię też mieć wszystkie wspólne zależności, informacje o repozytoriach i informacje o wtyczkach w jednym miejscu.
To doskonale rozwiązało mój problem! Dzięki! – Casey
Pamiętaj, aby dodać dane macierzyste jako zależność, jeśli chcesz użyć projektu nadrzędnego w podrzędnym. – cevaris