2013-06-26 66 views
0

以下设置:我有一个web项目和2个覆盖。所以我得到了3个不同的战争档案。现在有一个默认配置(bean,覆盖属性文件,web.xml),它在生产中使用但也用于测试目的。由于有时编程一个新功能并且配置值被设置为测试目的,值被遗忘,它达到了产品环境,这是不良的。具有不同依赖关系的maven war插件分类器

现在我们尝试获得一个或更好的两个配置项目。一个用于保存所有默认值,另一个用于测试。这个想法是为使用分类器的3个Web项目中的每一个创建一个额外的战争文件。

因此,应该有一个myapp.config工件,它包含所有默认值和一个myapp.war文件,以及一个位于myapp-dev.war文件中的myapp.config.dev工件。

因为我还没有习惯maven我GOOGLE了很多围绕互联网这是如何实现与Maven战争插件或Maven战争插件,但我没有找到一个解决方案。此外,我不知道这是否是实现这个“功能”的正确方法。

谢谢!

回答

1

不要针对不同的环境构建不同的工件。理想情况下,您想要像测试环境中测试一样部署相同的战争。否则,你会得到测试人员没有发现的错误 - 为什么,因为构建中的错误使得产品战争与测试战争略有不同,等等。

人们通常将特定于环境的配置放置到尽可能少的文件中。理想情况下只有一个文件,并有几个副本:

db-config-dev.properties 
db-config-test.properties 

然后像做一个系统属性中的所有environemnts添加到应用程序服务器启动:

-Dcom.company.environment=test 

最后一个战争在所有环境中的行为方式相同:加载并使用db-config - $ {com.company.environment} .properties