Java 如何处理多环境构建?

Java 如何处理多环境构建?,java,git,maven,tomcat,deployment,Java,Git,Maven,Tomcat,Deployment,我在一家相对较小的咨询公司工作,该公司为大公司提供java企业web应用程序。 在最近一次与客户的会面中,我就如何根据客户的工作方式定制发布流程提出了一些想法 对于每个应用程序平台,它们通常都有一个开发、测试和生产环境,我们的应用程序部署在该环境中。此外,我们还有一个本地开发环境,我们在其中进行大部分开发 我们目前的方法是,我们有4组配置数据,每个环境一组。如果我们为其中一个环境准备了一个版本,我们将交换配置并使用maven生成war文件,以便在tomcat服务器上部署。此外,我们使用git进行

我在一家相对较小的咨询公司工作,该公司为大公司提供java企业web应用程序。 在最近一次与客户的会面中,我就如何根据客户的工作方式定制发布流程提出了一些想法

对于每个应用程序平台,它们通常都有一个开发、测试和生产环境,我们的应用程序部署在该环境中。此外,我们还有一个本地开发环境,我们在其中进行大部分开发

我们目前的方法是,我们有4组配置数据,每个环境一组。如果我们为其中一个环境准备了一个版本,我们将交换配置并使用maven生成war文件,以便在tomcat服务器上部署。此外,我们使用git进行版本控制

我希望将此过程自动化为一个整体构建过程,但希望您能就采用哪种方法提供一些反馈:

配置

  • 配置应该作为war文件的一部分集成到构建中,还是外部化并反馈到web应用程序中?使用maven如何实现这一点
  • 您如何处理多平台配置的差异?(例如,作为构建过程一部分的基于标志的方法)
人工制品生成

  • 我的目标是为每个环境提供rpm,而不是war文件,这样我就可以控制安装路径并使安装可逆。这是惯例吗
版本控制

  • 我们使用git进行版本控制,在单个存储库中有一个dev、stage和release分支。目前,我们还将所有平台配置存储到同一个存储库中,我认为这与dev/stage/release分支无关。将其放在单独的存储库中有意义吗
如果这是编译时配置,您可以使用something.properties文件驱动,并让ant/maven根据各种属性来决定

如果配置是运行时配置,您可以通过相应的web.xml或类似文件驱动它

只是一个提示。