2011-01-28 34 views
18

Giai đoạn package của dự án có bao bì war, chuẩn bị một cuộc chiến nổ trong thư mục target và đóng gói này vào war -file cuối cùng.Điểm thực hiện giữa gói chuẩn bị và gói trong quy trình xây dựng Maven

Có thể thực hiện một số thay đổi, chỉnh sửa tệp, xóa tệp và v.v. giữa các giai đoạn prepare-packagepackage không? Tôi đang tìm kiếm một điểm mở rộng (Maven execution-phase), nơi các tài nguyên đã được sao chép và trong cấu trúc chiến tranh bùng nổ.

  1. [maven phase] Sao chép tài nguyên và phát nổ đến target/{finalName}.
  2. [tùy chỉnh] Thực hiện một số thay đổi tùy chỉnh phức tạp (ví dụ: được triển khai với maven-antrun).
  3. [maven phase] Đóng gói những thứ đã thay đổi vào war cuối cùng.

Tôi nghĩ rằng điều này có thể thực hiện được giữa các giai đoạn prepare-packagepackage. Thật không may sau khi prepare-package không có chiến tranh phát nổ có sẵn để được thay đổi và đóng gói sau này.

Bạn có thể cho tôi gợi ý cách đạt được điều này không? Cảm ơn nhiều.

+0

Plugin chiến tranh Maven cũng có thể loại trừ tệp và lọc chúng. Có lẽ nhu cầu của bạn phức tạp hơn? – Raghuram

+0

Nhu cầu phức tạp hơn, vâng. Tôi không thể sử dụng tính năng này, nó không đủ mạnh. – codevour

+0

Bạn sẽ phải giải thích thêm một chút về những thay đổi [tùy chỉnh] của bạn. Tùy thuộc vào những gì họ đang có, chúng tôi có thể tìm thấy các giải pháp khác nhau cho vấn đề của bạn. – SaM

Trả lời

15

Cấu hình này gọi mục tiêu exploded trong giai đoạn prepare-package. Điều này mang lại cho bạn cơ hội để làm việc trên thư mục chiến tranh bùng nổ trong các định nghĩa plugin tiếp theo, ví dụ: maven-antrun.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.1.1</version> 
    <executions> 
    <execution> 
     <id>prepare-war</id> 
     <phase>prepare-package</phase> 
     <goals> 
     <goal>exploded</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 
+0

Xin lỗi, tôi đã không tìm hiểu sâu hơn về điều đó, cuối cùng tôi đã triển khai MOJO chiến dịch riêng của mình (đã viết plugin maven của riêng tôi) và viết lại vòng đời cho điều đó. – codevour

+1

Làm thế nào bạn có được maven-antrun để thực hiện sau nhiệm vụ chuẩn bị chiến tranh? Tôi đang sử dụng plugin exec và nó tiếp tục thực thi trước đây. – HaxElit

+1

Điều này hoạt động ban đầu, nhưng những thay đổi tôi thực hiện trong thư mục chiến tranh bùng nổ được ghi đè bởi vì maven-war-plugin chạy lần thứ hai. Nó tái tạo thư mục chiến tranh bùng nổ với các tập tin gốc trước khi đóng gói tập tin chiến tranh.Nó có anyway để cấu hình nó để lần thứ hai nó chạy, maven-war-plugin sẽ chỉ gói chiến tranh bùng nổ vào một tập tin chiến tranh? – Nathan

1

Nghe có vẻ như tôi nên ràng buộc tác vụ chống phá hủy với giai đoạn chuẩn bị gói, bởi vì tại thời điểm này, các tài nguyên đã được xử lý, xem Lifecycle Reference.

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