Tôi có một kho lưu trữ Git chứa một loạt các dự án maven cấp cao nhất (mỗi thư mục nằm trong thư mục con của riêng chúng với một tệp pom.xml). Cấp cao nhất ở đây có nghĩa là các dự án này nằm trong thư mục con trực tiếp bên dưới gốc kho. Tất cả các dự án này nên duy trì trong cùng một kho lưu trữ Git.Jenkins: Cách xây dựng nhiều dự án cấp cao nhất từ kho lưu trữ git?
repo
+--- projectA
+--- pom.xml
+--- projectB
+--- pom.xml
Chúng có thể/nên được tạo bởi công việc độc lập jenkins. Vì vậy, chúng tôi có một công việc cho projectA và một cho projectB.
Trước đây với Subversion tôi đã có thể thiết lập công việc Jenkins (cho mỗi dự án) sẽ chỉ kiểm xuất nguồn dự án và chạy xây dựng Maven từ tệp pom.xml.
Với mô hình Git (có thể giống với tất cả DVCS) thay đổi này và tôi không chắc thực hành tốt nhất là gì. Có một vài lựa chọn mà tôi nhìn thấy và từ đó không có tôi thực sự thích:
- Mỗi công việc Jenkins là configured sao chép/kéo Git repo đầy đủ và đề cập đến /pom.xml cho Maven xây dựng. Vì vậy, công việc có tất cả các mã nhưng chỉ xây dựng một phần của nó.
- Git cung cấp submodules (http://book.git-scm.com/5_submodules.html) mà dường như thể là một chút khó khăn để xử lý (và có thể phá vỡ một cách dễ dàng)
- Tạo mẹ maven (aggregator có chứa tất cả các dự án) dự án mà gây nên mỗi dự án xây dựng (có một công việc jenkins duy nhất). Tệp pom.xml này chứa các phần tử cho projectA và projectB.
Bạn có thấy cách tiếp cận hữu ích hơn cho thiết lập này (thiết lập rất điển hình) không. Kinh nghiệm của bạn là gì? Bất kỳ phương pháp hay nhất nào?
Tôi rất đồng ý với martin.ahrer rằng, khi so sánh với Subversion, Git không có khả năng thanh toán một tiểu dự án của repo, là một yếu tố hạn chế. Tôi trả lời tốt đẹp cho câu hỏi này sẽ là tuyệt vời. – djangofan