Lưu ý: chủ đề này là viết một Mojo tùy chỉnh, không sử dụng plugin.Viết một Maven Plugin/Mojo: làm thế nào để bạn thực hiện một mục tiêu buộc thực hiện các mục tiêu khác?
Tôi duy trì testing plugin cho Maven. Thật không may, trong gần một năm nay, tôi đã để cái nặc danh này không biết và tôi thực sự muốn biết cách xử lý nó để người dùng của nó có thể có một cấu hình đơn giản hơn.
Hãy nói rằng chúng tôi có hai mục tiêu trong plugin của chúng tôi:
prepare
(giai đoạn: generate-nguồn)do
(giai đoạn: biên dịch)
Tôi muốn cấu hình do
Mojo yêu cầu prepare
đã được thực hiện trong giai đoạn trước của quá trình xây dựng. Tuy nhiên, không có gì trong số descriptor documentation gợi ý tôi có thể.
Người dùng có thể không quan tâm hoặc hiểu được điểm của mục tiêu prepare
, vì vậy tôi không muốn buộc họ chỉ định nó trong POM của họ. Tất nhiên, tôi có thể thực hiện Mojo trực tiếp từ do
, nhưng sau đó mục tiêu prepare
sẽ chạy ở giai đoạn muộn hơn dự định.
(Tôi nhìn vào custom lifecycles, nhưng mà làm cho nó xuất hiện rằng tất cả những người đã có mục tiêu prepare
trong POMs của họ sẽ có nó được thực hiện hai lần khi chạy do
.)
Đó là cách xác định rằng 'do' Mojo sẽ liên kết với giai đoạn biên dịch theo mặc định và được đặt tên là' biên dịch' làm mục tiêu, nhưng tiếc là tôi không thấy cách nó nói "oh và chắc chắn rằng 'chuẩn bị' được chạy đầu tiên ". Tại thời điểm này có vẻ như câu trả lời duy nhất là một vòng đời tùy chỉnh ... mà tôi đã làm việc nhưng tôi không chắc chắn tôi thích được nêu ra. –
Thú vị. Có lẽ bạn có thể thử kênh IRM #maven trong irc.codehaus.org. Có lẽ một số người sẽ có một gợi ý tốt hơn. – carlspring
Tại sao downvote? Có, đây là cách không dựa trên chú thích cũ hơn để thực hiện, nhưng nó vẫn hợp lệ. – carlspring