我有一個應用程序使用幾個配置文件(讓我們考慮appli.properties這裏)。 這些文件包含幾個取決於環境的值。我們可以找到一些信息,如:如何在構建Eclipse項目期間過濾資源?
server.port=${envi.server.port}
在另一邊,我有一組屬性文件,每一個環境(dev.properties,homolo.properties等)。 它們包含配置文件中某些屬性的值。我們可以在這裏找到這種屬性:
envi.server.port=4242
我的構建由Maven2處理。一切工作正常。
但是,我現在需要將我的項目導入到Eclipse中。 我主要關心的是配置文件過濾。事實上,如果我沒有修改我的項目的Eclipse參數中的任何內容(在mvn eclipse:eclipse命令之後),那麼我的所有配置文件將保留屬性項(即${envi.server.port}
)而不是它們的值。而這樣的配置文件,我的應用程序將無法在Eclipse中運行...
所以,我想兩種解決方案:
- 一個全Maven的解決方案,使用m2eclipse插件。我在項目配置中添加一個Maven Builder,然後每次構建時都要對這些文件進行過濾。
- Ant(僅在Eclipse中使用)。我hardly定義了一個模擬Ant中文件的Maven2過濾的任務。這項任務僅用於過濾,不編譯。
這兩個解決方案的共同問題是過濾是在每一個操作(基本上保存在Java類的版本),然後花費時間。然而第二種解決方案比第一種解決方案(超過10秒)更快(3秒)。
您如何看待我的方法? 你會怎麼做,以更好的方式?
我不理解使用Maven過濾屬性的問題。 – 2009-08-06 16:08:21
@Mike如果我正確理解這一點,那麼Maven構建會在每次更改時運行並需要大約10秒才能完成過濾,這是干擾的。 – 2009-08-06 16:51:51