Dường như có một số cách để cấu trúc các poms cha trong một bản dựng đa hướng và tôi tự hỏi liệu có ai có bất kỳ suy nghĩ nào về những lợi thế / nhược điểm của mỗi cách không.
Phương pháp đơn giản nhất để có một pom cha sẽ là đặt nó vào gốc của một dự án tức là
myproject/
myproject-core/
myproject-api/
myproject-app/
pom.xml
trong đó pom.xml là cả dự án mẹ cũng như mô tả các mô-đun -core -api và -app
Phương pháp tiếp theo là tách cha mẹ thành thư mục con riêng của nó như trong
myproject/
mypoject-parent/
pom.xml
myproject-core/
myproject-api/
myproject-app/
Trường hợp pom cha vẫn chứa các mô-đun nhưng chúng là tương đối, ví dụ ../myproject-core
Cuối cùng, có tùy chọn trong đó định nghĩa mô-đun và cha mẹ được phân tách như trong
myproject/
mypoject-parent/
pom.xml
myproject-core/
myproject-api/
myproject-app/
pom.xml
Trong đó pom cha chứa bất kỳ cấu hình "chia sẻ" nào (phụ thuộc quản lý, thuộc tính, v.v.) và myproject / pom.xml chứa danh sách các mô-đun.
Mục đích là có thể mở rộng để xây dựng quy mô lớn, do đó nên có thể mở rộng cho một số lượng lớn các dự án và hiện vật.
Một vài câu hỏi về phần thưởng:
- Đâu là nơi tốt nhất để xác định cấu hình được chia sẻ khác nhau như trong kiểm soát nguồn, thư mục triển khai, plugin chung, v.v. (Tôi giả sử là cha mẹ nhưng tôi thường bị cắn bởi điều này và họ đã kết thúc trong mỗi dự án thay vì một phổ biến).
- Làm thế nào để plugin phát hành maven, hudson và nexus đối phó với cách bạn thiết lập nhiều dự án của mình (có thể là một câu hỏi lớn, sẽ có nhiều hơn nếu có ai bị phát hiện khi xây dựng nhiều dự án)?
Chỉnh sửa: Mỗi dự án phụ có pom.xml riêng, tôi đã bỏ nó để giữ cho nó ngắn gọn.