Tôi có một ứng dụng lớn (~ 50 module) sử dụng một cấu trúc tương tự như sau:bố trí Repository cho Maven lớn các dự án
- Application
- Communication module
- Màu mô-đun giao tiếp
- Mô-đun giao tiếp SSN
- vv mô-đun truyền thông
- Router mô-đun
- module Dịch vụ
- dịch vụ bỏ phiếu mô-đun
- giao diện Web submodule cho bỏ phiếu
- Vote thu submodule cho bỏ phiếu
- vv để bỏ phiếu
- quiz mô-đun dịch vụ
- , vv mô-đun
- dịch vụ bỏ phiếu mô-đun
- Communication module
Tôi muốn nhập khẩu các ứng dụng để Maven và Subversion. Sau một số nghiên cứu tôi thấy rằng hai phương pháp tiếp cận thực tế tồn tại cho điều này.
Một người đang sử dụng cấu trúc cây giống như hình trước. Hạn chế của cấu trúc này là bạn cần một tấn tinh chỉnh/hack để có được báo cáo đa mô-đun hoạt động tốt với Maven. Một nhược điểm nữa là ở Subversion, cách tiếp cận trunk/tags/branch tiêu chuẩn thêm độ phức tạp hơn vào kho lưu trữ.
Cách tiếp cận khác sử dụng cấu trúc phẳng, nơi chỉ có một dự án chính và tất cả các mô-đun, mô-đun con và các phần của mô-đun con là con trực tiếp của dự án mẹ. Cách tiếp cận này hoạt động tốt để báo cáo và dễ dàng hơn trong Subversion, tuy nhiên tôi cảm thấy tôi mất một chút về cấu trúc theo cách này.
Bạn sẽ chọn cách nào trong thời gian dài và tại sao?