Có vẻ như có một số cách để cấu trúc poms mẹ trong một xây dựng đa và tôi tự hỏi nếu có ai có bất kỳ suy nghĩ về những lợi thế/nhược điểm là trong mỗi cách.Maven cha mẹ pom vs mô-đun pom
Phương pháp đơn giản nhất của việc có một pom mẹ sẽ đặt nó trong thư mục gốc của một dự án tức là
myproject/
myproject-core/
myproject-api/
myproject-app/
pom.xml
nơi pom.xml được cả hai dự án cha mẹ cũng như mô tả -api -core và -app module
phương pháp tiếp theo là tách ra phụ huynh vào thư mục con riêng của mình như trong
myproject/
mypoject-parent/
pom.xml
myproject-core/
myproject-api/
myproject-app/
Trường hợp pom mẹ vẫn chứa các module nhưng họ là họ hàng, ví dụ: ../myproject-core
Cuối cùng, có tùy chọn nơi định nghĩa mô-đun và phụ huynh được tách ra như trong
myproject/
mypoject-parent/
pom.xml
myproject-core/
myproject-api/
myproject-app/
pom.xml
Trường hợp pom mẹ chứa bất kỳ "chia sẻ" cấu hình (dependencyManagement, tài sản, vv) và myproject/pom.xml chứa danh sách các mô-đun.
Mục đích là có thể mở rộng được với quy mô lớn, do đó, có thể mở rộng thành một số lượng lớn các dự án và hiện vật.
Một vài câu hỏi bonus:
- đâu là nơi tốt nhất để xác định cấu hình chia sẻ khác nhau như trong kiểm soát nguồn, thư mục triển khai, bổ sung phổ biến vv (tôi giả phụ huynh 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 chứ không phải là một dự án chung).
- Plugin maven phát hành, 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 khổng lồ, nếu ai đó bị phát hiện khi xây dựng nhiều dự án thì sao?)?
Chỉnh sửa: Mỗi dự án phụ có pom.xml riêng của họ, tôi đã bỏ nó ra để giữ cho nó ngắn gọn.
Mỗi mô-đun đều có pom của riêng mình không? Dự án của tôi có một pom cha mẹ, nhưng các mô-đun từng có một pom là tốt. (có lẽ là cách thứ tư cho những gì bạn mô tả) – harschware
Ah, vâng, tôi sẽ chỉnh sửa và cập nhật. Mỗi submodules có pom riêng của họ là tốt. –
Cũng giống như một bản cập nhật, tôi có thể thấy lợi thế của tùy chọn thứ hai là dễ quản lý hơn trong Eclipse nơi mà tệp pom.xml gốc trong ví dụ thứ nhất và thứ ba sẽ khó bao gồm nếu các mô đun con là các dự án riêng biệt trong Eclipse . –