Maven中使用描述文件切换环境配置

首先在项目中定义一个属性文件,如这里的数据库配置文件 database.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://xxx:3306/xxx?useUnicode=true&characterEncoding=utf-8
jdbc.username=xxx
jdbc.password=xxx

在其他配置文件中引用,如Spring的配置文件 applicationContext.xml

    <!-- 引入properties文件 -->
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location">
            <value>classpath:database.properties</value>
        </property>
    </bean>
    <!-- 配置DataSource -->
    <bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="${jdbc.driver}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>

接下来创建各个环境的属性配置文件,这里创建的配置文件是用来覆盖前面的database.properties文件的,所以文件中的变量名需要保持一致,只需要变更各个参数值即可达到变更环境。

如这里在src\main\resources\env\下创建了几个环境的配置文件

  • dev.properties
  • prd.properties
  • pre.properties

 

然后需要在pom.xml文件中声明环境配置和编译过滤器

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <build>
    <filters>
        <filter>src/main/resources/env/${env}.properties</filter>
    </filters>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>database.properties</include>
            </includes>
        </resource>
    </resources>
  </build>
  <profiles>
      <profile>
          <id>dev</id>
          <activation>
              <activeByDefault>true</activeByDefault>
          </activation>
          <properties>
              <env>dev</env>
          </properties>
      </profile>
      <profile>
          <id>pre</id>
          <properties>
              <env>pre</env>
          </properties>
      </profile>
      <profile>
          <id>prd</id>
          <properties>
              <env>prd</env>
          </properties>
      </profile>
  </profiles>
</project>

至此配置完毕,刷新Maven的面板后会发现多出一个Profiles文件夹,在里面勾选不同的环境后编译出的database.properties文件会变成对应环境的配置

posted @ 2019-02-13 17:14  安培昌浩  阅读(276)  评论(0编辑  收藏  举报