2013-10-27 74 views
0

我正在为一家相对较小的咨询公司工作,该公司为大公司提供Java企业Web应用程序。 在最近与客户见面的过程中,我就如何定制我们的发布流程以及他们的工作方式提出了一些想法。如何处理多环境构建?

对于每个应用程序平台,他们通常都有一个开发应用程序的开发,测试和生产环境。另外我们有一个当地的开发环境,我们在这里开展大部分的开发工作。

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

我想这个过程自动化成一个整体的构建过程,但希望一些反馈哪种方法采取:

配置

  • 应该配置集成到构建的一部分战争文件或外部化并提供给Web应用程序?这怎么能用maven实现?
  • 您如何处理多平台配置的差异? (如标志为基础的方法作为构建过程的一部分)

人工制品代

  • 我的目标是为客户提供一个rpm每个环境,而不是战争的文件,这样我可以控制安装路径并使安装可逆。这是常见的做法吗?

版本控制

  • 我们使用git进行版本控制,具有开发,阶段和在单个存储库中释放分支。目前我们还将所有平台配置存储到同一个存储库中,在我看来,这与dev/stage/release分支无关。将它放入单独的存储库是否有意义?
+0

只是一个提示[这里](http://stackoverflow.com/questions/19637787/using-maven-to -build-多资源组件 - 即-是-非常相似)。 – khmarbaise

回答

0

如果这是编译时配置 - 你可以使用something.properties文件驱动,并让ant/maven根据各种属性决定。

如果配置运行时,它可以驱动它直通各自的web.xml或类似的文件