2009-08-06 39 views
5

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?

+0

Tôi không hiểu vấn đề khi sử dụng Maven để lọc các thuộc tính. –

+0

@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. –

Trả lời

2

Nếu tài nguyên không được thay đổi thường xuyên, bạn có thể đặt xây dựng Maven chỉ chạy sau khi xây dựng Sạch, sau đó nó sẽ không can thiệp quá nhiều, điều này không làm bất cứ điều gì để tăng tốc độ xây dựng tuy nhiên.

Làm cho việc lọc nhanh hơn, tôi không biết bất kỳ cơ chế đơn giản nào khác sẽ hữu ích, như bạn đã nói bạn cần Ant hoặc Maven để chạy bộ lọc và cả hai đều mất chút thời gian để thiết lập trước khi xây dựng, dẫn đến chậm lại.

Nếu điều này gây ra nhiều sự cố, bạn có thể viết Incremental Eclipse builder tùy chỉnh thực hiện quá trình lọc trên đồng bằng. Điều này nên được nhanh hơn đáng kể, nhưng rõ ràng là rất nhiều nỗ lực để viết.

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