Maven profiles多环境配置

本文详细介绍如何在Maven项目中实现开发环境与生产环境的配置文件切换,通过在resources目录下创建不同环境的配置文件,并在pom.xml中设置profile来自动选择正确的配置文件,确保应用程序能够根据不同环境加载相应的配置。
摘要由CSDN通过智能技术生成

第一步:在resources目录下新建config目录,并且创建profile-dev.properties(开发)、profile-prod.properties(生产)两个配置文件。例如:

194451_WSzA_561367.png

第二步:修改pom.xml文件,需要修改两个地方

1、在project标签内新增下列配置

<profiles>
    <profile>
        <id>dev</id>
        <build>
            <filters>
                <filter>src/main/resources/config/profile-dev.properties</filter>
            </filters>
        </build>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>prod</id>
        <build>
            <filters>
                <filter>src/main/resources/config/profile-prod.properties</filter>
            </filters>
        </build>
    </profile>
</profiles>

2、在project > build > resources标签下增加如下内容:

<resource>
    <directory>${basedir}/src/main/resources</directory>
    <includes>
        <include>**/*.properties</include>
        <include>**/*.xml</include>
    </includes>
    <filtering>true</filtering>
</resource>

分析下<resource>下面的属性:
<directory>: 配置那个目录下的文件通过${key}会被替换成属性值,resource目录下,我们一般放jdbc连接,或配置文件。
<includes>:指定那个目录下那个文件。
<filtering>:这个配置的意思是过滤上面指定属性文件中的占位符,占位符是${变量名称}这样的形式,maven会自动读取配置文件,然后解析其中的占位符,使用上面pom文件中定义的属性进行替换。
<exclueds>:在resource目录下,有很多文件,但用些文件不希望替换,则可以通过<excluede>指定。
<filters>:这里的filters与<profile>的filter意思一样,都是指属性文件地址,这个如果上面定义<profile>的时候指定了,这里就不需要了,但有些开发习惯是在<profile>不定义,然后在<build>里指定。

案例:

profile-dev.properties的内容如下:

#1000*60*2
thread.sleepTime=120000

#redis
redis.keyPrefix=hbase
redis.host=10.0.11.245
redis.port=6379
redis.timeout=3600000
redis.password=wetp

#hbase
hbase.zookeeper.quorum=10.0.11.104
hbase.zookeeper.property.clientPort=2181
hbase.master=10.0.11.104:16010

被替换的文件wetp.properties的内容如下:

thread.sleepTime=${thread.sleepTime}

#redis
redis.keyPrefix=${redis.keyPrefix}
redis.host=${redis.host}
redis.port=${redis.port}
redis.timeout=${redis.timeout}
redis.password=${redis.password}

#hbase
hbase.zookeeper.quorum=${hbase.zookeeper.quorum}
hbase.zookeeper.property.clientPort=${hbase.zookeeper.property.clientPort}
hbase.master=${hbase.master}

转载于:https://my.oschina.net/u/561367/blog/1544422

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值