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等
     
     
     
       
  • 相关阅读:
    LeetCode Flatten Binary Tree to Linked List
    LeetCode Longest Common Prefix
    LeetCode Trapping Rain Water
    LeetCode Add Binary
    LeetCode Subsets
    LeetCode Palindrome Number
    LeetCode Count and Say
    LeetCode Valid Parentheses
    LeetCode Length of Last Word
    LeetCode Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/xiaohan666/p/9373410.html
Copyright © 2011-2022 走看看