MavenProfile

MavenProfile 只和打包有关系
MavenProfile可以进行自由切换配置文件。
	当开发,测试,内测,公测,上线这些环境用的数据库,redis,mq,zookeeper,fastDFS等地址都是可能变化的。
开发人员要给每一个环境进行打包布署。要不判断修改配置文件。使用MavenProfile解决配置文件的切换问题

MavenProfile的使用原则:
	有几个环境,就写几套配置文件。
使用方式如下:
pom.xml
<project>
	<parent></parent> 
    <modelVersion>4.0.0</modelVersion>
    <packaging>jar</packaging>
    <artifactId>pyg-common</artifactId>
	<!--配置属性文件(property file)-->
    <profiles>
        <!--开发模式-->
        <profile>
            <id>dev</id>	<!--id属性值随意,主要是指定当前属性文件的名称-->
            <properties>
                <db>dev</db>	<!--db是自定义的key,dev是自定义的value-->
            </properties>
        </profile>
        <!--生产模式-->
        <profile>
            <id>pro</id>
            <properties>
                <db>pro</db>
            </properties>
        </profile>
    </profiels>
    <dependencies>
        	......
    </dependencies>
     <build>
         <!--配置过滤器来读取properties配置文件-->
         <filters>
             <filter>src\main\resources\profile\db_${db}.properties</filter>
         </filters>
         <resource>
             <directory>src\main\resources</directory>
             <filtering>true</filtering>
         </resource>
    </build>
</project>
src\main\resources:
src\main\resources\profile:
<!--配置db_dev.propertis-->
	db_dev.propertis
		db.jdbc.driver=com.mysql.jdbc.Driver
		db.jdbc.url=jdbc:mysql://localhost:3306/db1
		db.jdbc.username=root	
		db.jdbc.password=root
<!--pro.propertis-->
	db_pro.propertis
		db.jdbc.driver=com.mysql.jdbc.Driver
		db.jdbc.url=jdbc:mysql://localhost:3306/db2
		db.jdbc.username=root	
		db.jdbc.password=root

src\main\resources\jdbc:
	applicationContext.xml
	......
	......
执行流程:
1.启动maven的打包命令,并指定属性文件的ID, package -P dev ,读取到了<id>dev</id>所对应的profile中的properties,并将properties中的key/value加载到属性文件中
2.pom.xml继续往下执行到build标签,找到过滤器标签,使用属性文件中的key/value替换db_${db}.properties中的${db}为db_dev.properties;并读取db_dev.properties中的key/value再次存入属性文件中
3.继续往下执行,读取到<resource></resource>标签所指定的需要被属性文件中的ke/value替换的目录;对<directory>标签指定的目录下的所有资源进行过滤,只要指定目录下出现了属性文件中对应的key,就将其替换;如果指定目录下有${}表达式,但是${}表达式中的key并不存在于属性文件中,属性文件就不对它进行任何处理
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值