Maven 2 使用maven定制生成/筛选资源

Maven 2 使用maven定制生成/筛选资源,maven-2,resources,filtering,Maven 2,Resources,Filtering,我想知道在我的情况下,马文的方式是什么 我的应用程序有一堆配置文件,我们称它们为配置文件。每个概要文件配置文件都是一个*.properties文件,其中包含键/值以及关于这些键/值的一些注释。其思想是生成这些*.properties,以便在所有属性中都有统一的注释。 我的计划是创建一个template.properties文件,其中包含 #Comments for key1/value1 key1=${key1.value} #Comments for key2/value2 key2=${k

我想知道在我的情况下,马文的方式是什么

我的应用程序有一堆配置文件,我们称它们为配置文件。每个概要文件配置文件都是一个*.properties文件,其中包含键/值以及关于这些键/值的一些注释。其思想是生成这些*.properties,以便在所有属性中都有统一的注释。 我的计划是创建一个template.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的副本,并使用配置文件\数据\属性作为筛选器筛选该副本

最简单的方法可能是创建一个ant构建文件并使用antrun插件。但这不是一种专业的方式,是吗

另一个选择是为这个小任务创建一个Maven插件。不知何故,我不喜欢这个想法(插件部署不是我非常想要的)。

Maven确实提供了可以与之结合的功能(例如,请参阅),但我不确定这是否会有所帮助。如果我正确理解您的需求,您需要循环一组输入文件并更改输出文件的名称。虽然第一部分可能使用多个
,但我认为第二部分不适用于

因此,如果您想在一个构建中实现这一点,最简单的方法就是使用Maven AntRun插件,并使用Ant任务实现循环和处理逻辑


除非你需要在多个地方重复使用它,否则我不会将这个逻辑封装在Maven插件中,如果在一个项目中,在一个独特的位置,这会给你带来很多好处。

你可以扩展Maven的过滤方式,maven通过依赖项注入从plexus容器中检索其过滤策略。因此,您必须注册一个新的默认策略。这是一项繁重的工作,文件记录也很糟糕,但我认为这是可以做到的

使用以下URL作为起点:


肖恩

事实上,我的问题与Maven的个人资料无关。“profile”一词在maven语篇中太模糊了)。但感谢安特伦方法的批准,帕斯卡。对于一个专业新手来说,很难判断所选择的方法是否笨拙。@zamza,不客气。当有疑问时,请随时提问,这是正确的做法。