Mam repozytorium Git, które zawiera kilka projektów najwyższego poziomu maven (każdy siedzi w ich własnym podkatalogu z pom.xml). Najwyższy poziom oznacza, że te projekty znajdują się w podkatalogu bezpośrednio pod katalogiem głównym repozytorium. Wszystkie te projekty powinny pozostać w tym samym repozytorium Git.Jenkins: jak tworzyć wiele projektów najwyższego poziomu z repozytorium git?
repo
+--- projectA
+--- pom.xml
+--- projectB
+--- pom.xml
Mogą/powinny być budowane przez niezależne firmy Jenkins. Mamy więc pracę dla projektu A i jednego dla projektu B.
Dawniej z Subversion udało mi się stworzyć zadanie Jenkinsa (dla każdego projektu), które miało być wykonane tylko ze źródła projektu i uruchomić kompilację Maven z pliku pom.xml.
Z modelem Git (prawdopodobnie to samo ze wszystkimi DVCS) to się zmienia i nie jestem pewien, co jest najlepszą praktyką. Istnieje kilka opcji, które widzę i od którego nikt tak naprawdę lubię:
- Każde zadanie Jenkins jest configured sklonować/pull pełną Git repo i odnosi się do /pom.xml dla Maven budować. Tak więc zadanie ma cały kod, ale buduje tylko jego kawałek.
- Git oferuje submodules (http://book.git-scm.com/5_submodules.html), które wydają się być nieco kłopotliwe w obsłudze (i może łatwo pęknąć)
- Tworzenie maven rodzica (agregator, który zawiera wszystkie projekty) Projekt, który wyzwala każdy projekty budowy (o jedna robota jenkins). Ten plik pom.xml zawiera elementy projektuA i projectB.
Czy widzisz bardziej przydatne podejście do tego (bardzo typowa konfiguracja). Jakie jest twoje doświadczenie? Jakieś najlepsze praktyki?
Zgadzam się z witryną martin.ahrer, że w porównaniu do Subversion, Git nie ma możliwości sprawdzenia podprojektu repo, jest czynnikiem ograniczającym. Dobra odpowiedź na to pytanie byłaby niesamowita. – djangofan