2010-05-15 63 views
1

我想知道我的情況下Maven的方式是什麼。使用maven定製生成/過濾資源

我的應用程序有一堆配置文件,我們稱之爲配置文件。每個配置文件配置文件都是* .properties文件,其中包含鍵/值以及對這些鍵/值語義的一些註釋。我們的想法是生成這些* .properties,以便在它們中都有統一的註釋。 我的計劃是創建一個包含類似

#Comments for key1/value1 
key1=${key1.value} 

#Comments for key2/value2 
key2=${key2.value} 

和像

#profile_data_1.properties 
key1.value=profile_1_key_1_value 
key2.value=profile_1_key_2_value 

#profile_data_2.properties 
key1.value=profile_2_key_1_value 
key2.value=profile_2_key_2_value 

一堆文件的template.properties文件然後結合產生resources階段創建template.properties副本每個profile_data_ ,並過濾與profile_data_ .properties複製作爲過濾器。

最簡單的方法可能是創建一個ant構建文件並使用antrun插件。但這不是Maven的方式,是嗎?

另一種選擇是創建一個Maven插件那個小任務。不知何故,我不喜歡這個想法(插件部署不是我想要的)。

回答

2

Maven確實提供filtering of resources,您可以結合Maven profiles(請參閱this post),但我不確定這會對此有所幫助。如果我正確理解您的需求,則需要循環一組輸入文件並更改輸出文件的名稱。雖然第一部分可能會使用幾個<execution>,但我認爲第二部分不適用於resources plugin

所以,如果你想這樣做在一個構建,最簡單的方法是確實使用Maven插件AntRun,並實施循環,並與Ant任務的處理邏輯。

除非你需要在幾個地方重用這個,我不會在一個Maven插件封裝這一邏輯,如果這是在一個項目完成後,在一個獨特的位置,這將給你很多好處。

+0

其實,我的問題無關,與Maven的配置文件。 maven話語中的「profile」這個詞太模糊了)。 但是,感謝安進法的批准,帕斯卡爾。 Maven新手很難判斷所選擇的方法是不是一個繁瑣的方法。 – zamza 2010-05-15 22:21:36

+0

@zamza不客氣。如果有疑問,隨時提問,這是恕我直言,正確的做法。 – 2010-05-16 08:15:47