如何在Maven中验证属性文件集
我想我有一个相当普遍的问题,我希望Maven能够解决,但我找不到合适的插件 背景 像大多数规模合理的项目一样,我需要在几个不同的环境中部署我的应用程序。比如说,它们被称为“开发”、“质量保证”和“生产”。在这些环境中,我的应用程序将与不同的后端服务器通信,并将其数据保存到不同的数据库。我将为每个环境创建一个Java属性文件,并在应用程序中部署正确的属性文件,而不是硬编码应用程序中的所有设置。在我的源代码中,将类似于:如何在Maven中验证属性文件集,maven,Maven,我想我有一个相当普遍的问题,我希望Maven能够解决,但我找不到合适的插件 背景 像大多数规模合理的项目一样,我需要在几个不同的环境中部署我的应用程序。比如说,它们被称为“开发”、“质量保证”和“生产”。在这些环境中,我的应用程序将与不同的后端服务器通信,并将其数据保存到不同的数据库。我将为每个环境创建一个Java属性文件,并在应用程序中部署正确的属性文件,而不是硬编码应用程序中的所有设置。在我的源代码中,将类似于: <root> |-- conf | |--de
<root>
|-- conf
| |--develop
| | \-- application.properties
| |--qa
| | \-- application.properties
| \--production
| \-- application.properties
\-- pom.xml
|--形态
||——发展
|| \--application.properties
||--qa
|| \--application.properties
|\--生产
|\--application.properties
\--pom.xml
问题
如果开发人员正在向项目中添加新的设置,那么很容易更新conf\development\application.properties
文件,但忘记了更新其他文件。如果缺少该设置,这通常会导致运行时出错,这在生产服务器上可能是灾难性的
问题
是否有Maven插件可用于确保application.properties的所有三个版本都包含完全相同的密钥集。如果任何文件中缺少一个(或多个)密钥,则生成应失败。我:
- 使用,例如
有关如何实现多值参数的示例,请参见文件
- 读取三个
文件并填充.properties
(其中:映射
,字符串键
)整数计数
- 如果任何
不等于最后给出的文件数,抛出整数
。如果其中一个值无效,例如为空或语法错误,则同样适用org.apache.maven.plugin.MojoFailureException
我将插件的目标绑定到
生成资源
阶段。总而言之,您需要验证所有3个应用程序属性
是否具有相同的键。您还想验证它们是否有特定的键吗?最简单的解决方案是编写一个单元测试来处理这个问题…@Tunaki我已经更新了这个问题,让它更清楚一些,但是是的-我想验证每个属性文件是否包含完全相同的键集。如果缺少任何一个键,构建就会失败,因为它们都很重要。遗憾的是,我认为这可能是最好的解决方案。我原以为这是一个足够频繁的要求,但我猜我错了。谢谢