Tôi có một ứng dụng sử dụng một số tệp cấu hình (chỉ xem xét appli.properties tại đây). Những tệp này chứa một số giá trị phụ thuộc vào môi trường. Chúng tôi có thể tìm thấy một số thông tin như:Làm cách nào để lọc các tài nguyên trong khi xây dựng trong dự án Eclipse?
server.port=${envi.server.port}
Mặt khác, tôi có một tập hợp các tệp thuộc tính, một tệp cho mỗi môi trường (dev.properties, homolo.properties, v.v.). Chúng chứa các giá trị cho một số thuộc tính trong tệp cấu hình. Chúng tôi có thể tìm thấy ở đây loại thuộc tính này:
envi.server.port=4242
Xây dựng của tôi được xử lý bởi Maven2. Mọi thứ đều hoạt động tốt.
Tuy nhiên, bây giờ tôi cần nhập dự án của mình vào Eclipse. Mối quan tâm chính của tôi là về việc lọc các tập tin cấu hình. Thật vậy, nếu tôi không sửa đổi bất cứ điều gì trong tham số Eclipse cho dự án của tôi (sau mvn eclipse: eclipse command), thì tất cả tệp cấu hình của tôi sẽ giữ các khóa thuộc tính (ví dụ: ${envi.server.port}
) thay vì giá trị của chúng. Và với các tập tin cấu hình như vậy, ứng dụng của tôi sẽ không chạy bên trong Eclipse ...
Vì vậy, tôi đã cố gắng hai giải pháp:
- A-Maven đầy đủ giải pháp, sử dụng plugin m2eclipse. Tôi thêm một Maven Builder trong cấu hình dự án, và sau đó, mỗi lần xây dựng được thực hiện, việc lọc được thực hiện trên các tệp.
- Ant (chỉ được sử dụng bên trong Eclipse). Tôi đã hardly xác định một tác vụ mô phỏng việc lọc Maven2 các tệp trong Ant. Nhiệm vụ này chỉ dành riêng cho việc lọc, không biên dịch.
Vấn đề chung của hai giải pháp này là việc lọc được thực hiện ở mọi hoạt động (về cơ bản là lưu trên phiên bản lớp Java), và sau đó mất thời gian. Tuy nhiên, giải pháp thứ hai nhanh hơn (3 giây) so với giải pháp đầu tiên (hơn 10 giây).
Bạn nghĩ gì về cách tiếp cận của tôi? Bạn sẽ làm điều đó như thế nào, theo cách tốt hơn?
Tôi không hiểu vấn đề khi sử dụng Maven để lọc các thuộc tính. –
@Mike Nếu tôi hiểu điều này một cách chính xác, đó là việc xây dựng Maven được chạy trên mỗi thay đổi và mất ~ 10 giây để làm việc lọc, điều này là gián đoạn. –