MavenProfile

MavenProfile

在我们平常的java开发中,会经常使用到很多配制文件(xxx.properties,xxx.xml),而当我们在本地开发(dev),测试环境测试(test),线上生产使用(product)时,需要不停的去修改这些配制文件,次数一多,相当麻烦。现在,利用maven的filter和profile功能,我们可实现在编译阶段简单的指定一个参数就能切换配制,提高效率,还不容易出错.

profile可以让我们定义一系列的配置信息,然后指定其激活条件。这样我们就可以定义多个profile,然后每个profile对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果。

数据库连接配置

resources下创建filter文件夹

db_dev.properties

env.jdbc.driver=com.mysql.jdbc.Driver
env.jdbc.url=jdbc:mysql://localhost:3306/db_dev?characterEncoding=utf-8
env.jdbc.username=devUser
env.jdbc.password=123456

db_pro.properties

env.jdbc.driver=com.mysql.jdbc.Driver
env.jdbc.url=jdbc:mysql://localhost:3306/db_pro?characterEncoding=utf-8
env.jdbc.username=proUser
env.jdbc.password=123456

db.properties

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

pom.xml

<!-- 默认为dev -->
<properties>
    <env>dev</env>
</properties>
<profiles>
    <!-- dev开发环境 -->
    <profile>
        <id>dev</id>
        <properties>
            <env>dev</env>
        </properties>
    </profile>  
    <!-- pro生产环境 -->
    <profile>
        <id>pro</id>
        <properties>
            <env>pro</env>
        </properties>
    </profile>
</profiles>


<build>
    <!-- 放行的配置文件 -->
    <filters>
        <filter>src/main/resources/filters/db_${env}.properties</filter>
    </filters>
    <!-- 需要替换的配置文件路径 (db.properties)-->
    <!-- 只要在这个路径下 使用到了db_${env}中的key的 都会替换成db_${env}中的value-->
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
    </resource>  		
</resources>
</build>

这里我们利用filter实现对资源文件(resouces) 过滤
maven filter可利用指定的xxx.properties(db_dev.properties/db_pro.properties )中对应的key=value对资源文件( db_properties )中的key进行替换,最终把你的资源文件中的username={key}进行替换,最终把你的资源文件中的username=keyusername={key}替换成username=value

执行命令:package -P pro , 解压生成的jar包,观察db.properties配置文件内容,已经替换为生产环境的值。

注册中心zookeeper连接配置

spring.xml

<dubbo:registry protocol="zookeeper" address="${address}"/>

dubbox_dev.properties

env.address=192.168.25.135:2181

dubbox_pro.properties

env.address=192.168.25.136:2181

dubbox.properties

address=${env.address}

pom.xml

<properties>
    <env>dev</env>	
</properties>
<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <env>dev</env>
        </properties>
    </profile>
    <profile>
        <id>pro</id>
        <properties>
            <env>pro</env>
        </properties>
    </profile>
</profiles> 

.............................

<build>
    <filters>
        <filter>src/main/resources/filters/dubbox_${env}.properties</filter>
    </filters>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>	
    </resources>	
</build>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值