Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 软件部署过程_Java_Spring_Maven_Jenkins_Deployment - Fatal编程技术网

Java 软件部署过程

Java 软件部署过程,java,spring,maven,jenkins,deployment,Java,Spring,Maven,Jenkins,Deployment,我正在研究Java/SpringWeb应用程序,对软件构建过程有一个问题,特别是关于stage和prod环境 现在,在当前的项目中,我们有一个以下过程——我们将Git-dev代码分支合并到stage,然后使用Maven和Jenkins构建和部署项目到stage环境。一旦stage得到验证,我们就将stage合并到mastergit分支,并再次使用Maven和Jenkins构建和部署项目 这是一个正确的过程吗?我们是否需要为stage和prod环境构建单独的war文件(就像我们目前所做的那样),或

我正在研究Java/SpringWeb应用程序,对软件构建过程有一个问题,特别是关于stage和prod环境

现在,在当前的项目中,我们有一个以下过程——我们将Git-dev代码分支合并到stage,然后使用Maven和Jenkins构建和部署项目到stage环境。一旦stage得到验证,我们就将stage合并到mastergit分支,并再次使用Maven和Jenkins构建和部署项目

这是一个正确的过程吗?我们是否需要为stage和prod环境构建单独的war文件(就像我们目前所做的那样),或者我们是否需要构建单个war文件,将其部署到stage env并提供阶段参数,测试和验证它,然后将相同的war文件部署到prod环境,但使用prod参数


在第二种方法的情况下,如何正确地参数化必须在Tomcat上运行的单个应用程序,并为stage和prod使用不同的参数?此外,我们正在使用Maven过滤功能。。在这种情况下,如何处理它?

将版本从登台升级到生产时,通常需要将完全相同的二进制版本部署到生产中,以确保在登台上测试的版本在生产中表现相同

当您为生产创建一个新的构建时,您不能保证它的行为与您为登台创建的构建相同。据您所知,构建服务器上的Java版本或其他工具可能在这两者之间发生了变化

有多种方法可以解决配置难题。您应该首先从应用程序中剥离所有特定于环境的配置(在您的情况下是一场战争),这样您就可以在所有环境中使用相同的二进制文件。 接下来,您可以:

  • 手动管理目标环境本身的配置
  • 使用Puppet或Chef等供应系统自动推出配置更改
    或者(我更喜欢下面的选项:)
  • 为每个环境构建带有配置的包(仅普通zip文件)。
    生成结果示例:

    • 战争
    • config-tst.zip
    • config-stg.zip
    • config-prd.zip
  • 因此,当部署到测试环境时,部署war并解压缩config-tst.zip。当您部署到staging时,您将部署相同的war和config-stg.zip等

    希望这有帮助,祝你好运