2013-06-28 17 views
6

mam oddzielone kod, który mam poczyniła do tej pory z jednego projektu maven do wielu projektów maven. Projekty, w których się znalazłem, mogą być wykorzystane przez przyszłe projekty, są to raczej biblioteki. Używałem jednego repozytorium Git do tego momentu, ponieważ wszystko było w jednym projekcie. Jednak po modularyzacji zastanawiam się, czy powinienem stworzyć repozytorium Git dla każdego projektu Maven. Uważam, że jest to właściwy sposób, ale chciałbym usłyszeć, co myślą o tym inni. Ponieważ projekty mogą działać jako samodzielne komponenty, zasługują również na własne repozytorium Git? Inną opcją byłoby opracowanie wszystkich projektów w tym samym repozytorium Git dla projektu, nad którym obecnie pracuję.projekty modułowe Maven i wielu repozytoriów Git

+0

Sposób, w jaki zamierzasz z niego korzystać, wpłynie w równym stopniu na decyzję. Czy istnieje większe prawdopodobieństwo, że moduły zostaną rozwidlone jako samodzielne? – velo

+0

To naprawdę sprowadza się do "Jak chcesz to zrobić?". Nie ma "poprawnej" odpowiedzi na to. Tak czy inaczej jest w porządku. –

Odpowiedz

2

Ponieważ projekty mogą działać jako samodzielne komponenty, zasługują również na własne repozytorium Git?

To jest rzeczywiście jednym z głównych kryteriów definiowania repo git, która będzie stanowić spójną grupę pliku z własnym niezależnym historii (w tym jego zestaw oddziałów i znaczniki)

Ma to dodatkowy zaletę, że jakiś inny projekt w zależności od niektóre ale nie wszystkie składniki nie będzie musiał sklonować pełnej niepowtarzalny repo git (które zawierają wszystko, zawartych składników nie jest to konieczne).
Ten inny projekt może klonować i korzystać z dokładnego podzbioru wymaganych składników.

To się nazywa component approach, as opposed to the system approach.

+1

Tak, dokładnie. Dodałbym do tego, że prawdopodobnie chcesz wyeliminować jakąkolwiek macierzystą pom, którą możesz mieć również. W ten sposób możesz naprawdę ewoluować oba moduły niezależnie. Jeśli jest to niewygodne, ponieważ twoje moduły są w rzeczywistości mocno sprzężone, modularyzacja spowoduje więcej problemów, niż rozwiązuje. To jest trochę anty-wzór w Javie, gdzie ludzie zmieniają każdy pakiet w moduł i kończą spędzać zbyt dużo czasu na wydaniach, kompilacjach itp. –

Powiązane problemy