zoukankan      html  css  js  c++  java
  • maven多环境自动切换配置

    maven profile多环境自动切换配置,配置分离,排除文件

     

    痛点:

      在java开发的过程中,我们经常要面对各种各样的环境,比如开发环境,测试环境,正式环境,而这些环境对项目的需求也不相同。

      在此之前,我们往往需要手动去修改相对应的配置文件然后打成war,才能部署到相应的环境上。

      但是这样很容易出现问题,因为很容易出现少改或者漏改,造成不必要的麻烦

    幻想:

      要是有一种东西,能让我们打war的时候指定一个参数,就能自动把项目编译成对应环境的war,那该有多幸福啊!!!

    结果:这样的东西还真有,那就是maven-profile

    一、项目src/main/resources目录下建立相对应的目录

     我建立了三个目录,分别是:dev,test,pro分别表示开发环境,测试环境,生产环境。当然还可能有更多的环境。针对不同的环境,我们的配置文件可能会有不同的设置,比如我的需求是,三个环境的项目常量设置,数据库连接设置,log设置都可能不同。

    那我就分别在三个文件中配置了不同设置,在外面也有三个相对应的文件,其实在开发的过程中外面的三个和dev里面的三个应该是相同的。

    公共配置直接放到src/main/resources下

    二、POM中的配置

    复制代码
     1  <profiles>
     2         <!--本地开发环境-->
     3         <profile>
     4             <id>dev</id>
     5             <properties>
     6                 <profiles.active>dev</profiles.active>
     7             </properties>
     8             <activation>
     9                 <activeByDefault>true</activeByDefault>
    10             </activation>
    11         </profile>
    12         <!--测试环境-->
    13         <profile>
    14             <id>test</id>
    15             <properties>
    16                 <profiles.active>test</profiles.active>
    17             </properties>
    18         </profile>
    19         <!--生产环境-->
    20         <profile>
    21             <id>pro</id>
    22             <properties>
    23                 <profiles.active>pro</profiles.active>
    24             </properties>
    25         </profile>
    26     </profiles>
    27 
    28 <!--build部分-->
    29     <build>
    30         <finalName>xxx</finalName>
    31         <sourceDirectory>src/main/java</sourceDirectory>
    32         <testSourceDirectory>src/test/java</testSourceDirectory>
    33         <resources>
    34             <resource>
    <!--项目的默认资源目录,但是要排除不必要的文件,想要指定加入的再下面的resource指定-->
    35                 <directory>${project.basedir}/src/main/resources</directory>
    36                 <excludes>
    38                     <exclude>dev/*</exclude>
    40                     <exclude>pro/*</exclude>
    41                     <exclude>test/*</exclude>
    43                 </excludes>
    44             </resource>
    49             <resource>
    50                 <directory>${project.basedir}/src/main/resources/${profiles.active}</directory>
    51                 <includes>
    52                     <include>**/*.xml</include>
    53                 </includes>
    54                 <!--是否替换资源中的属性-->
    55                 <filtering>true</filtering>
    56             </resource>
    57         </resources>
    58 ...
    59 </build>
    复制代码
     
     
      maven 打包时制定参数就好 -P test等
     
     
     
       
  • 相关阅读:
    Java 8 并行流与串行流
    Java 8 新增的 Stream
    Java 8 新增的 Lambda 表达式
    《CSS揭秘》 |用户体验与结构布局
    《CSS揭秘》 |阴影
    《CSS揭秘》 |形状
    《CSS揭秘》 |前言
    《CSS揭秘》 |背景与边框
    《CSS揭秘》 |CSS编码技巧
    《CSS揭秘》 |检测属性与属性值
  • 原文地址:https://www.cnblogs.com/xiaohan666/p/9373410.html
Copyright © 2011-2022 走看看