2011-11-07 25 views
16

Tôi đang gặp khó khăn khi nhìn thấy "rừng qua cây cối" trên một số khái niệm Maven ở đây. Tôi hiểu rằng Maven được cấu hình sẵn với một loạt cái gọi là "Giai đoạn xây dựng vòng đời" bắt đầu bằng validatetest và kết thúc bằng deploy.Maven: Mối quan hệ giữa Giai đoạn Vòng đời & Mục tiêu

Tôi đến Maven từ Ant nơi bạn tổ chức các giai đoạn xây dựng chính thành các mục tiêu (có thể phụ thuộc vào các mục tiêu khác theo kiểu tuyến tính), và sau đó bạn phân hủy các mục tiêu của mình thành các nhiệm vụ thủ tục. Maven dường như hỗ trợ điều này nhưng theo hình thức mục tiêu.

Câu hỏi của tôi (vì tôi từng nghĩ đến việc xây dựng về mục tiêu và nhiệm vụ) là: các giai đoạn vòng đời này (package, verify, v.v ...) liên quan đến mục tiêu như thế nào? Có cần phải cấu hình mà mục tiêu để chạy ở giai đoạn nào, hoặc là điều này được thực hiện bởi Maven automagically bằng cách nào đó?

Hoặc, các mục tiêu có được xác định trước với giai đoạn mà chúng thuộc về không?

Tôi chỉ không thấy cách đặt hàng mục tiêu để tạo một bản dựng tùy chỉnh phù hợp với họ hoặc tổ chức của họ.

Cảm ơn trước vì bất kỳ sự rõ ràng nào!

+0

Xem [answer] (http://stackoverflow.com/a/30953905/1744774) tới _Maven: Vòng đời so với Giai đoạn so với Plugin so với Mục tiêu_ cho tất cả những gì liên quan đến các thực thể được đặt tên. –

Trả lời

11

Nhiều plugin Maven liên kết mục tiêu cụ thể (mojo) với một giai đoạn vòng đời cụ thể.

Ví dụ: tìm kiếm documentation of maven-jar-plugin:jar goal. Nó nói:

Ràng buộc theo mặc định cho gói vòng đời: gói.

Ngoài ra, vòng đời chính là xác định những công cụ cần được chạy cho từng giai đoạn. Đối với các loại bao bì mặc định, các công cụ này được Maven xác định trước và được giải thích tại đây ->http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Built-in_Lifecycle_Bindings.

Nhưng ví dụ này cho thấy cách tạo liên kết vòng đời hoàn toàn tùy chỉnh ->http://www.sonatype.com/people/2009/08/create-a-customized-build-process-in-maven/. Như bạn có thể thấy, bạn có thể ràng buộc bất kỳ sự kết hợp của các mục tiêu plugin cho một giai đoạn vòng đời cụ thể.

Cuối cùng, nhưng không kém phần quan trọng, bạn có thể thêm thực thi plugin theo cách thủ công thông qua phần tử build/plugins của tệp pom của bạn. Nếu bạn làm điều đó các plugin trong các giai đoạn cụ thể sẽ thực hiện theo thứ tự FIFO.

Ngoài ra, nó có thể giúp bạn xem Effective POM với tất cả các giá trị mặc định được nêu rõ. Nhiều IDE cung cấp tùy chọn này cho các dự án Maven, nhưng bạn cũng có thể thấy pom hiệu quả từ dòng lệnh:

mvn help:effective-pom 
+0

cảm ơn bạn rất nhiều vì câu trả lời và các liên kết hữu ích! – IAmYourFaja

Các vấn đề liên quan