2010-05-15 61 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