2010-06-28 29 views
5

Tôi có một dự án mô-đun đa mô-đun và tôi muốn sử dụng các phiên bản theo cách mà nhà phát triển phải chạm vào chỉ dự án gốc để thay đổi phiên bản của tất cả các mô-đun.Tuyên truyền phiên bản trong Maven

Ví dụ

ProjA chứa

  • Module1

  • module2

  • Module3

Al l các mô-đun chứa Poms riêng của chúng và có pom của ProjA làm cha mẹ của chúng. Khi tôi chạy build, tôi nhận được một jar được tạo cho mỗi module. Bây giờ Để xây dựng một phiên bản mới hơn của ProjA, tôi chỉ cần thay đổi phiên bản của pom ProjA và tất cả các poms của các mô-đun sẽ nhận phiên bản mới này từ cha mẹ. Điều này làm việc nếu tôi harcode phiên bản cha mẹ trong tất cả các pom của module. Nhưng điều này cũng sẽ buộc tôi phải cập nhật poms của tất cả các mô-đun cho mỗi thay đổi phiên bản trong pom cha mẹ mà đánh bại nó mục đích. Có cách nào để tránh điều này và vẫn đạt được hành vi đã nêu không?

Trả lời

6

Sử dụng Maven Versions Plugin và mục tiêu versions:update-child-modules của nó:

  • versions:update-child-modules cập nhật phần cha mẹ của các module con của một dự án nên phiên bản phù hợp với phiên bản của dự án hiện tại. Ví dụ, nếu bạn có một tập hợp pom cũng là cha mẹ cho các dự án mà nó tổng hợp và các phiên bản dành cho trẻ em và cha mẹ không đồng bộ, mojo này có thể giúp sửa các phiên bản của các mô-đun con. (Lưu ý bạn có thể cần phải gọi Maven với tùy chọn -N để chạy mục tiêu này nếu dự án của bạn bị hỏng quá nặng đến nỗi nó không thể xây dựng được do phiên bản phù hợp sai).
Các vấn đề liên quan