如何在Maven中验证属性文件集

时间:2016-04-19 15:29:41

标签: maven

我认为我预计Maven会解决一个相当普遍的问题,但我无法找到合适的插件......

背景

与大多数合理规模的项目一样,我需要在几个不同的环境中部署我的应用程序。让他们说他们被称为"开发"," qa"和"生产"。在每个环境中,我的应用程序将与不同的后端服务器通信,并将其数据保存到不同的数据库。而不是硬编码我的应用程序中的所有设置我将为每个环境创建一个Java属性文件,并且只是在应用程序中部署正确的文件。在我的源代码中将看起来像:

<root>
   |-- conf
   |     |--develop
   |     |    \-- application.properties
   |     |--qa
   |     |    \-- application.properties
   |     \--production
   |         \-- application.properties
   \-- pom.xml 

问题

如果开发人员正在向项目添加新设置,则更新conf\development\application.properties文件太容易,但忘记更新其他文件。如果缺少该设置,则通常会导致运行时出错,这在生产服务器上可能是灾难性的。

问题

是否有可用于确保所有三个版本的application.properties包含完全相同的密钥集的Maven插件。如果任何文件中缺少一个(或多个)密钥,则构建应该失败。

1 个答案:

答案 0 :(得分:1)

develop a Maven plugin

  • appropriate parameter,例如files

    有关如何实施多个值参数的示例,请参阅this answer

  • 读取三个.properties文件并填写Map<String, Integer>(其中:String keyInteger count)。

  • 如果Integer中的任何一个不等于最后给出的文件数,则抛出org.apache.maven.plugin.MojoFailureException。如果其中一个值无效,则同样适用,例如,空的或在语法上错误的。

我将插件的目标绑定到generate-resources阶段。