Maven实战之正式环境和测试环境配置分离

最近一直在研究前公司的架构,发现原公司的架构还是很不错的,对于生产环境以及测试环境这一点,虽然没有配置中心,但也是一定程度实现了正式环境以及测试环境的分离。

闲话不多说,现在直接上代码:

首先需要在pom文件中确定filter和要filter的资源,这是通过在build节点中添加filter和resource来实现的,示例如下:

<build>

<filters>

<filter>${env}.properties</filter>

</filters>

<resources>

<resource>

<directory>src/main/resources</directory>

<filtering>true</filtering>

</resource>

</resources>

</build>

上述配置表示要对<filter>采用的过滤文件${env}.properties</filter>下的资源进行过滤,如果不写,默认当前目录,因为该目录下没有二进制文件,所以没有excluding。<filtering></filtering>true表示需要过滤,<directory></directory>表示需要过滤的文件,过滤时采用的过滤文件为${env}.properties文件,其中${env}是一个变量,表示当前使用的环境,这是通过在pom文件中通过profile定义的,如下所示:

<profiles>

<profile>

<id>dev</id>

<properties>

<!-- 测试环境 -->

<env>dev</env>

</properties>

<activation>

<activeByDefault>true</activeByDefault>

</activation>

</profile>

<profile>

<id>formal</id>

<properties>

<!-- 正式环境 -->

<env>formal</env>

</properties>

</profile>

</profiles>

这里需要解释一下activation的意思:

<!--自动触发profile的条件逻辑。Activation是profile的开启钥匙。profile的力量来自于它能够在某些特定的环境中自动使用某些特定的值;这些环境通过activation元素指定。activation元素并不是激活profile的唯一方式。-->

通俗一点说,如果检测到匹配的属性,则激活该该配置项。

这样在开发时就不用每次指定这个值。在测试和部署上线时分别通过-P传入当前的profile id,这样maven就会将env变量设置为对应的值,从而导致使用不同的filter文件来对resources下的文件进行过滤替换。

具体如下图

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-11 05:13:23

Maven实战之正式环境和测试环境配置分离的相关文章

企业中的软件开发——开发环境、测试环境、镜像环境与生产环境的区别

开发环境:开发环境是程序员们专门用于开发的服务器,配置可以比较随意,为了开发调试方便,一般打开全部的错误报告和测试工具,是最基础的环境.开发环境的分支,一般是feature分支. 测试环境:一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么就肯定不能把它发布到生产服务器上,是开发环境到生产环境的过渡环境.测试环境的分支一般是develop分支,部署到公司私有的服务器或者局域网服务器上,主要用于测试是否存在bug,一般会不让用户和其他人看到,并且测试环境会尽量与生产环境相似.有时测试

开发环境,生产环境,测试环境的区别

软件开发环境是指在基本硬件和宿主软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE. 它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程,活动和任务,后者为集成和软件的开发,维护及管理提供统一的支持. 项目部署环境一般可以分为三种:生产环境,测试环境,开发环境. 开发环境:开发环境时程序员专门用于开发的服务器,配置可以比较随意,为了开发调试方便,一般打开全部错误报告和测试工具,是最基础的环境. 开发环境的分支,一般是feature分支. 测试环境:一

vue cli3配置开发环境、测试环境、生产(线上)环境

cli3创建vue项目是精简版的少了build和config这2个文件,所以配置开发环境.测试环境.生产环境的话需要自己创建env文件. 需要注意2点: 1.cli2创建项目生成的config文件里的env文件是js后缀 2.cli3创建自定义env文件的话不需要js后缀 下面开始创建配置: 一.直接在你项目的根目录创建三个文件(注意都没有后缀,直接创建新文件):.env.development (开发环境) .env.test(测试环境).env.production(生产环境) .env.d

正式环境数据迁移到测试环境及测试环境LAMP搭建

参照正式环境扩展模块来搭建测试环境,否则访问不了 PHP 代码 PDO.PDO_MYSQL.OPENSSL.SSL.CURL等扩展模块 正式环境 Windows Server 2008 R2 X64 Apache+MySQL+PHP+FTP服务 备份MySQL.PHP.APP数据 通过anv软件连接MySQL数据库备份 将 goshop数据库备份,格式为goshop.sql 通过Filezilla软件连接FTP服务,备份PHP及APP数据 正式环境数据备份好后,开始搭建测试环境,将数据上传至测试

什么是 开发环境、测试环境、生产环境、UAT环境、仿真环境

开发环境:开发环境是程序猿们专门用于开发的服务器,配置可以比较随意, 为了开发调试方便,一般打开全部错误报告. 测试环境:一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么肯定不能把它发布到生产机上. 生产环境:是指正式提供对外服务的,一般会关掉错误报告,打开错误日志.可以理解为包含所有的功能的环境,任何项目所使用的环境都以这个为基础,然后根据客户的个性化需求来做调整或者修改. 三个环境也可以说是系统开发的三个阶段:开发->测试->上线,其中生产环境也就是通常说的真实环境. UA

浅谈 什么是JAVA开发环境、测试环境及生产环境,及它的过程 (转)

从网上整理了一些回答加上个人理解. 环境分以下几种: 1.开发和配置环境:所有的开发和配置在这个环境里进行.一般情况下,只有这个环境可以改配置和进行开发,并且一般不在这个环境下创建数据.(开发环境就是每个开发人员电脑上的开发环境,只有开发人员可以配置和开发,写数据测试放在测试环境) 2.测试环境:新开发和配置通过系统传输到测试环境,进行功能测试,可以创建数据.(开发人员开发完上传到SVN,测试人员下载下来测试.我们公司测试人员不懂IDE,所以是由我们开发人员下载好,他直接通过IP地址访问来测试的

开发环境、生产环境、测试环境的基本理解和区别

对于刚刚来到一个新的团队或是新环境的“新人”来说,当你无所事事且故作投入之时,听着几个“老人”在自己可视范围之外或严肃或轻松的讨论着业务,其措辞拿捏精准,语气抑扬顿挫,期间,涉及到一些的概念可能难免让你不明觉厉……然默默道:”高端,大气,上档次!“ ”不识庐山真面目,只缘身在此山中“,对于一些术语,它既有官方称呼,也有通俗叫法,对于不明觉厉的我只是正巧漫步在这座叫做大山的山中啊! 菜鸟话多…… 开发环境:开发环境是程序猿们专门用于开发的服务器,配置可以比较随意, 为了开发调试方便,一般打开全部错

开发环境、生产环境、测试环境的基本理解与区别

开发环境:开发环境是程序猿们专门用于开发的服务器,配置可以比较随意, 为了开发调试方便,一般打开全部错误报告. 测试环境:一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么肯定不能把它发布到生产机上. 生产环境:是值正式提供对外服务的,一般会关掉错误报告,打开错误日志. 三个环境也可以说是系统开发的三个阶段:开发->测试->上线,其中生产环境也就是通常说的真实环境.

SpringBoot的Profiles根据开发环境和测试环境载入不同的配置文件

参考:https://www.cnblogs.com/bjlhx/p/8325374.html 1.需要有一个默认的配置文件,然后一个正式的配置文件,一个测试的配置文件.激活配置项,默认的配置文件application.properties也会加载进去的.编程的方式指定生效的profile. 默认的配置文件application.properties配置文件,然后再创建两个配置文件,一个是application-dev.properties,一个是application-test.propert