Tôi đang tạo các kiểu mẫu Maven 2 cho dự án của chúng tôi (Weld). Tôi muốn có thể kiểm soát các tệp được đặt vào dự án đã tạo dựa trên giá trị của thuộc tính được xác định trong archetype:generate
. Ví dụ, tôi thấy trước dấu nhắc sau:Làm cách nào để có điều kiện bao gồm hoặc loại trừ tệp khỏi nguyên mẫu khi dự án được tạo?
Define value for groupId: : com.example
Define value for artifactId: : myproject
Define value for package: com.example: :
Define value for includeGradleSupport: : y
Dựa trên giá trị của includeGradleSupport, tôi muốn bao gồm (hoặc không bao gồm) file build.gradle
trong dự án tạo ra. Nếu người dùng không muốn hỗ trợ Gradle, tôi không muốn làm lộn xộn dự án được tạo ra với các tệp không cần thiết.
Ví dụ khác là tôi có thể cần phải cung cấp một đoạn web Jetty (để kích hoạt trình nghe có lẽ) nếu người dùng muốn hỗ trợ Jetty.
Đó là tất cả về tùy chỉnh dự án dựa trên những gì nhà phát triển dự định sử dụng. Trong khi tôi có thể tạo ra một nguyên mẫu hoàn toàn khác, đôi khi những thay đổi quá nhỏ đến nỗi sẽ dễ dàng thêm/loại trừ một tệp.
Có cách nào để kiểm soát hành vi này bằng cách sử dụng trình mô tả archetype-metadata.xml
không?
Theo vấn đề này: http://jira.codehaus.org/browse/ARCHETYPE-58 tính năng này đang được xử lý. Bây giờ chúng tôi chỉ cần xem một số tài liệu cho nó (bao lâu có thể chờ đợi được?) –
Tôi đã làm việc trên một dự án trong một thời gian sử dụng hồ sơ cho loại hành vi này và đã đi nặng và xây dựng và poms của chúng tôi đã vô cùng phức tạp. Cuối cùng chúng ta đã kết luận rằng điều tốt nhất cần làm là thiết lập một cấu trúc dự án mới, nơi mã ứng dụng chính của chúng ta được dựng lên và sau đó các cấu hình triển khai khác nhau là các bản dựng hoàn toàn khác nhau phụ thuộc vào dự án chính. Điều này tạo ra rất nhiều bản dựng và dự án nhưng tất cả chúng đều đơn giản và dễ bảo trì và có một tạo phẩm duy nhất. –