构建CD管道以将应用程序部署到不同环境的最佳实践

时间:2015-06-30 06:33:22

标签: java-ee deployment jenkins continuous-integration war

目前我正在尝试为我们的应用程序构建CD管道,这是一个典型的Maven J2EE项目,我们将向Tomcat容器部署战争。

我们对CD管道的计划如下:

CI(Run UT and build the WAR) -> Deploy to DEV -> Deploy to SIT -> Deploy UAT -> Deploy PROD

为了遵循CD的最佳实践,我们只在CI阶段构建一次二进制(war),但我们有一些配置文件对于每个环境都不同,那么放置相关配置文件的最佳方法是什么?部署阶段的每个环境?

我们正在使用Jenkins and the build-pipe-line plugin构建pipeline,是否有任何推荐的插件可以实现这一目标?

感谢。

2 个答案:

答案 0 :(得分:1)

配置工件

  • 编写一个脚本来替换配置文件,如果它们嵌入了 WAR。

您可以使用maven-antrun-plugin

  1. 解压WAR
  2. 替换配置
  3. 重新包装战争
  4. ant任务应该在不同的环境中重用:

    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <configuration>
        <tasks>
            <echo message="Configuring artifact, ${PIPELINE_STAGE}"/>
            <!-- extracting,replacing,repacking -->
        </tasks>
    </configuration?
    
    • 外部化配置文件。好吧,只需将配置文件上传到服务器即可。

    通过管道阶段共享工件

    1. 将WAR上传到工件存储库。
    2. 下载CI阶段中内置的WAR并进行配置。
    3. 部署配置的WAR。
    4. 您可以在本文的Sharing build artifacts throughout the pipeline中找到详细信息。

答案 1 :(得分:0)

只需完成可能的答案数量:

您可以使用maven assembly plugin创建不同的部署War文件。根据我的经验,这比使用蚂蚁任务好得多。