7.maven使用profile切换环境(慕课网)

需求:有时候,我们在开发和部署的时候,有很多配置文件数据是不一样的,比如连接mysql,连接redis,一些properties文件等等,每次部署或者开发都要改配置文件太麻烦了,这个时候,就需要用到maven的profile配置了。

1.在项目下pom.xml的project节点下创建了开发环境和生产环境的profile

<profiles>
    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <build.profile.id>dev</build.profile.id>
        </properties>
    </profile>
    <profile>
        <id>prd</id>
        <properties>
            <build.profile.id>prd</build.profile.id>
        </properties>
    </profile>
</profiles>

其中id代表这个环境的唯一标识,下面会用到。
properties下我们我们自己自定义了标签env,内容分别是dev和prd。
activeByDefault=true代表如果不指定某个固定id的profile,那么就使用这个环境。
2.下面是项目的根目录,新建 dev.properties和prd.properties
在开发时,我们使用dev下的配置文件,部署时候使用prd下的配置文件
在这里插入图片描述
dev.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/study?characterEncoding=utf-8&useSSL=false
jdbc.username= root
jdbc.password= admin123

prd.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/study?characterEncoding=utf-8&useSSL=false
jdbc.username=prd
jdbc.password=prd

3.项目中使用环境的变量
在这里插入图片描述
db.properties

jdbc.driver=${jdbc.driver}
jdbc.url=${jdbc.url}
jdbc.username=${jdbc.username}
jdbc.password=${jdbc.password}

applicationContext.properties

<!-- 加载db.properties -->
 <context:property-placeholder location="classpath:db.properties" />
 <!-- 1.配置数据源(c3p0数据库连接池) -->
 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
     <!-- 基础配置 -->
     <property name="jdbcUrl" value="${jdbc.url}"/>
     <property name="driverClass" value="${jdbc.driver}"/>
     <property name="user" value="${jdbc.username}"/>
     <property name="password" value="${jdbc.password}"/>
 </bean>

4.配置pom.xml
如果直接install,那么就会找到默认的id为dev的这个profile,然后会在里面找env的节点的值,接着就会执行替换,相当于将src/main/resources这个文件夹下的所有的配置文件打包到classes根目录下。

<build>
    <finalName>springmvc_demo</finalName>
    <filters>
        <filter>src/anti_${build.profile.id}.properties</filter>
    </filters>
    <sourceDirectory>src/main/resources</sourceDirectory>
    <!--定义打包资源文件-->
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
 </build>

5.执行mvn clean install –P dev/mvn clean install –P prd
可以看到db.properties和applicationContext.xml中的值被替换
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u010286027/article/details/84849034