maven隔离

使用maven隔离的必要性

  1. 为什么引入maven隔离
    1. 代码开发、代码测试、发布版本是我们开发过程中必不可少的三个环节,以数据库为例,生产环境所使用的数据库与测试环境所使用的定不相同,
      为解决地址不同的问题,我们一般在同一个配置文件中写好两套环境地址,在使用开发环境时,将生产环境配置注释掉;而在发布正式版本前,
      需要将开发环境配置注释掉,使用生产环境地址;
    2. 这样的来回切换,就很容易导致某个测试或打包时忘记切换地址,某取消注释时漏掉某一部分,导致不可挽回的损失;
    3. 所以我们有必要引入一种机制,将不同环境的配置文件写到不同的文件中,切换开发环境时直接切换配置文件目录,而不是在反复取消注释。
  2. 引入maven隔离后的便利性
    1. maven隔离就是这样一种机制:将不同的配置文件写到不同的文件目录中,可以指定默认使用的开发环境,打包时可以动态指定需要使用哪套配置文件;
    2. 在IDE中切换配置文件仅仅是点两下鼠标的事。

二、maven隔离的配置方式

  1. 添加resources节点
    1. pom.xml文件的build子节点下添加resources节点;
    2. 说明:
      1. resources节点下可配置多个resource子节点;
      2. 上图中的第一个resource子节点代表需要动态指定的配置环境,其中${deploy.type}在下一小节中指定;
      3. 第二个resource子节点代表公共资源。
  2. 添加profiles节点
    1. pom.xml文件下直接添加profiles节点;
    2. 说明:
      1. profiles节点下可配置多个profile子节点,每个profile子节点代表一套配置环境;
      2. resource节点下使用的${deploy.type}变量是在profile节点中指定,它代表了每个profile的id值。
      3. 本例中将dev环境设置为默认的配置环境,即:<activeByDefault>true</activeByDefault>
  3. 对pom文件进行import操作,查看idea右侧“Maven Project”侧边栏,若有如下信息,则代表配置成功:
  4. 在项目目录:${projectName}/src/main目录下分别建立resouces.devresource.prod,后缀与pom.xml下profiles定义的id保持一致
    1. 在不同的资源目录下分别建立配置文件,并填好相应的配置
    2. dev配置文件截图:
      1. 1
    3. prod配置文件截图:
  5. 在idea中若想切换配置文件环境,则直接在“Maven Project”中切换即可

    1. 切换后的效果为:
    2. 注意:该项操作需要多点两下鼠标,因为存在“虚选中”这种情况,如下图即是“虚选中”(虚选中的✔️颜色较浅):

三、使用maven隔离后的打包方式

  1. 打包命令: mvn clean package -P evnname
  2. 举例并验证:
    1. 若不指定 -P 选项即进行打包,则推测:使用的配置文件为dev,因为dev为默认的配置环境
      1. 打包命令: mvn clean package
      2. 使用vim查看jar内配置文件内容:
        1. 验证成功
    2. 指定 -Pprod命令,则使用的配置文件为prod
      1. 打包命令: mvn clean package -Pprod
      2. 使用vim查看jar内配置文件内容:
        1. 验证成功

三、其他说明

  1. maven隔离的demo在BossData/sneakerX/share目录下,若有需要可进行查看。
  2. 有趣的尝试:假设有3个profile,在开发时都选中进行测试,程序运行时使用的是哪个profile呢?^_^
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值