【问题标题】:Multiple localized environments多个本地化环境
【发布时间】:2012-03-25 20:37:23
【问题描述】:

我正在处理的当前应用程序的构建过程。目前要构建应用程序,需要根据要使用的环境、环境类型和国家/地区的组合从多个属性文件中组装配置文件。

为了更好地解释它,有一个这样的文件夹层次结构:

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

每个文件夹中都有属性文件,这些文件会根据所选组合进行合并和覆盖。 (所以 Prod/ 文件会覆盖 Default/ 文件,而 Prod/UK 会覆盖 Default/UK,因为每个域和每个国家都有特定的属性)

我认为对于应用程序,特别是网站来说,这是一个非常常见的场景,其中大部分代码是通用的,但本地化配置会更改一些功能(例如支付方式),但我仍然找不到任何最佳实践或构建提示来改进/简化流程。有人有什么建议吗?

应用程序是用 Java 构建的,使用 Maven 和 Jenkins 进行依赖和 CI 管理。

【问题讨论】:

标签: java design-patterns maven configuration jenkins


【解决方案1】:

由于您使用的是 Jenkins,您绝对应该考虑的一件事是使用矩阵(多配置)构建。您可能有两个轴:一个涉及环境类型,另一个涉及国家/地区。这种方法的好处是它会迫使(或至少推动)您排除配置之间的共性,并根据轴值以类似的方式处理它们之间的差异。它还将减少未来变化点的数量。

在我看来,这种方法最严重的缺点是 Matrix 构建在 Jenkins 中还不是“一等公民”,因此许多插件不能很好地处理它们,从而导致错误或缺乏功能可用于常规构建。另一个缺点是矩阵构建一开始有些混乱,需要习惯。

【讨论】:

  • 这似乎是迄今为止我见过的最好的选择,虽然该功能没有很多文档...
猜你喜欢
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 2017-11-12
  • 2021-01-21
  • 2020-07-26
  • 2016-03-30
  • 1970-01-01
  • 2018-01-29
相关资源
最近更新 更多