2012-03-25 64 views
1

我正在开发的当前应用程序的构建过程。目前,要构建应用程序,将根据要使用的环境(多个属性文件中的环境类型和国家/地区的组合)来组合配置文件。多个本地化环境

要更好一点解释,有一个文件夹层次结构是这样的:

|--DEFAULT 
    |-- UK 
    |-- Malaysia 
    |-- India 
|--PROD 
    |-- UK 
    |-- Malaysia 
    |-- India 
|--DEV 
    |-- UK 
    |-- Malaysia 
    |-- India 

当每个文件夹中还有属性文件,被合并,并根据所选择的组合覆盖。 (所以产品/文件将覆盖默认/文件和产品/英国将覆盖默认/英国,因为有属性特定于每个域和每个国家)

我认为是一个相当普遍的应用场景,特别是网站,虽然大部分代码都是常见的,但本地化配置会改变某些功能(例如支付方式),但我仍然找不到任何最佳实践或构建提示以改进/简化流程。有没有人有任何建议?

该应用程序是用Java构建的,Maven和Jenkins用于依赖关系和CI管理。

+2

查看Maven配置文件。 http://maven.apache.org/guides/introduction/introduction-to-profiles.html – 2012-03-25 23:43:23

+0

Maven程序集与配置文件一起使用也非常有用。 – 2012-03-26 00:23:30

回答

1

由于您使用Jenkins的一件事,您应该考虑使用Matrix(多配置)构建。你可能有两个轴:一个是跨越国家的另一个环境类型。这种方法的好处是,它会强制(或至少推动)你将配置之间的共同点分解出来,并以轴值为基础以相似的方式处理它们之间的差异。它也将减少未来的变化点数量。

在我看来,这种方法最严重的缺点是Matrix Builds在Jenkins中还不是'头等公民',其效果是许多插件不能很好地处理它们,导致错误或缺乏可用于定期构建的功能。另一个缺点是,Matrix Builds起初有点混乱,需要习惯。

+0

这似乎是迄今为止我所见过的最好的选择,虽然该功能没有很多文档... – jasalguero 2012-04-04 09:48:20