0

以下设置:我有一个 Web 项目和它的 2 个叠加层。因此我得到了 3 个不同的战争文件。现在有一个默认配置(bean,覆盖属性文件,web.xml),用于生产但也用于测试目的。有时,在编写新功能并为测试目的设置配置值时,忘记了值,它会到达 prod 环境,这很糟糕。

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

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

由于我还不习惯 maven,所以我在互联网上搜索了很多如何使用 maven war 插件或 maven warpath 插件来实现,但我没有找到解决方案。此外,我不知道这是否是实现此“功能”的正确方法。

在此表示感谢!

4

1 回答 1

1

不要为不同的环境构建不同的工件。理想情况下,您希望将与在测试环境中测试过的相同的战争部署到 prod。否则你会得到测试人员没有发现的错误——为什么,因为构建中的错误使产品战与测试战略有不同,等等。

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

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

然后在所有环境中为应用服务器启动添加系统属性:

-Dcom.company.environment=test

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

于 2013-06-27T03:45:02.507 回答