maven项目Profiles打包切换项目配置信息,避免遗漏出错

在实际项目开发中,基本都是需要多种环境,例如:本地调试,内网测试,外网测试,生产环境(正式)。而各个环境之间的数据库连接信息或者各种配置信息,都不可能是全部都一样的,此时就需要切换,但是手动切换的话,有时候会出现遗漏和出错,而且也是非常麻烦的事情,需要去找到一个个配置信息,进行注释或者修改。
这里我们利用maven的profile功能切换环境,可以完美的避免这种情况,并且使项目的配置信息都整合起来,非常容易管理。
使用工具:IntelliJ IDEA

在pom.xml定义环境的profiles:

<profiles>
        <profile>
            <id>本地调试</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>

                <mongodb.admin.host>192.168.1.121</mongodb.admin.host>
                <mongodb.admin.port>27017</mongodb.admin.port>
                <mongodb.admin.credentials> </mongodb.admin.credentials>

                <mongodb.server.host>192.168.1.121</mongodb.server.host>
                <mongodb.server.port>27017</mongodb.server.port>
                <mongodb.server.credentials> </mongodb.server.credentials>

                <mysql.admin.host>192.168.1.222</mysql.admin.host>
                <mysql.admin.port>3306</mysql.admin.port>
                <mysql.admin.user>root</mysql.admin.user>
                <mysql.admin.password>123456</mysql.admin.password>

                <redis.host>192.168.1.251</redis.host>
                <redis.port>6379</redis.port>
                <redis.password>123</redis.password>

                <address.chat>http://192.168.1.121:1088/</address.chat>
                <address.server>http://192.168.1.121:10200/bgo/</address.server>
                <address.api>http://192.168.1.222:8080/sondoon-api/</address.api>
                <address.official>http://192.168.1.222:8080/sondoon-web/</address.official>
                <address.img>http://192.168.1.222:8080/</address.img>
                <address.um>http://192.168.1.222:8080/sondoon-um/</address.um>
                <address.um.sociaty>http://192.168.1.222:8080/sondoon-um/sociaty</address.um.sociaty>

                <sms.model>1</sms.model>
                <sms.account>N54xxxx</sms.account>
                <sms.password>isDmwxxxxx</sms.password>
                <sms.url>http://smssh1.253.com/msg/send/json</sms.url>

                <push.model>true</push.model>
                <project.model>1</project.model>
            </properties>
        </profile>
        <profile>
            <id>内网测试</id>
            <properties>
                <address.project>192.168.1.251</address.project>

                <mongodb.admin.host>${address.project}</mongodb.admin.host>
                <mongodb.admin.port>27017</mongodb.admin.port>
                <mongodb.admin.credentials> </mongodb.admin.credentials>

                <mongodb.server.host>${address.project}</mongodb.server.host>
                <mongodb.server.port>27017</mongodb.server.port>
                <mongodb.server.credentials> </mongodb.server.credentials>

                <mysql.admin.host>${address.project}</mysql.admin.host>
                <mysql.admin.port>3306</mysql.admin.port>
                <mysql.admin.user>web</mysql.admin.user>
                <mysql.admin.password>123456</mysql.admin.password>

                <redis.host>${address.project}</redis.host>
                <redis.port>6379</redis.port>
                <redis.password>123</redis.password>

                <address.chat>http://${address.project}:1088/</address.chat>
                <address.server>http://${address.project}:10200/bgo/</address.server>
                <address.api>http://${address.project}/sondoon-api/</address.api>
                <address.official>http://${address.project}/sondoon-web/</address.official>
                <address.img>http://${address.project}/</address.img>
                <address.um>http://${address.project}/sondoon-um/</address.um>
                <address.um.sociaty>http://${address.project}/sondoon-um/sociaty</address.um.sociaty>

                <sms.model>1</sms.model>
                <sms.account>N54xxxxxx</sms.account>
                <sms.password>isDmwxxxxxx</sms.password>
                <sms.url>http://smssh1.253.com/msg/send/json</sms.url>

                <push.model>false</push.model>
                <project.model>1</project.model>
            </properties>
        </profile>
        <profile>
            <id>外网测试</id>
            <properties>
                <address.project>10.135.70.xxx</address.project>

                <mongodb.admin.host>127.0.0.1</mongodb.admin.host>
                <mongodb.admin.port>28017</mongodb.admin.port>
                <mongodb.admin.database>@admin</mongodb.admin.database>
                <mongodb.admin.credentials> </mongodb.admin.credentials>

                <mongodb.server.host>127.0.0.1</mongodb.server.host>
                <mongodb.server.port>28017</mongodb.server.port>
                <mongodb.server.database>@admin</mongodb.server.database>
                <mongodb.server.credentials> </mongodb.server.credentials>

                <mysql.admin.host>${address.project}</mysql.admin.host>
                <mysql.admin.port>3306</mysql.admin.port>
                <mysql.admin.user>erlang</mysql.admin.user>
                <mysql.admin.password>1</mysql.admin.password>

                <redis.host>${address.project}</redis.host>
                <redis.port>6379</redis.port>
                <redis.password>123</redis.password>

                <address.chat>http://${address.project}:1088/</address.chat>
                <address.server>http://${address.project}:10200/bgo/</address.server>
                <address.api>http://${address.project}/sondoon-api/</address.api>
                <address.official>http://139.199.4.xx/sondoon-web/</address.official>
                <address.img>http://139.199.4.xx/</address.img>
                <address.um>http://${address.project}/sondoon-um/</address.um>
                <address.um.sociaty>http://${address.project}/sondoon-um/sociaty</address.um.sociaty>

                <sms.model>1</sms.model>
                <sms.account>N54xxxxxx</sms.account>
                <sms.password>isDmwxxxxxx</sms.password>
                <sms.url>http://smssh1.253.com/msg/send/json</sms.url>

                <push.model>false</push.model>
                <project.model>1</project.model>
            </properties>
        </profile>
        <profile>
            <id>正式环境</id>
            <properties>
                <address.project>web.xxxxxx.com.prime</address.project>

                <mongodb.admin.host>mongo_erlang.xxxxxx.com.prime</mongodb.admin.host>
                <mongodb.admin.port>27017</mongodb.admin.port>
                <mongodb.admin.database>@admin</mongodb.admin.database>
                <mongodb.admin.credentials>erlang:erlang8!1${mongodb.server.database}</mongodb.admin.credentials>

                <mongodb.server.host>mongo_erlang.xxxxxx.com.prime</mongodb.server.host>
                <mongodb.server.port>27017</mongodb.server.port>
                <mongodb.server.database>@admin</mongodb.server.database>
                <mongodb.server.credentials>erlang:erlang8!1${mongodb.server.database}</mongodb.server.credentials>

                <mysql.admin.host>mysql_web.xxxxxx.com.prime</mysql.admin.host>
                <mysql.admin.port>3306</mysql.admin.port>
                <mysql.admin.user>webuser</mysql.admin.user>
                <mysql.admin.password>Pisdf290L</mysql.admin.password>

                <redis.host>redis_web.xxxxxx.com.prime</redis.host>
                <redis.port>6379</redis.port>
                <redis.password>redisxxxxxx2</redis.password>

                <address.chat>http://chat.xxxxxx.com:1088/</address.chat>
                <address.server>http://bg.xxxxxx.com.prime:10200/bgo/</address.server>
                <address.api>http://${address.project}:8080/sondoon-api/</address.api>
                <address.official>http://web.xxxxxx.com:8080/sondoon-web/</address.official>
                <address.img>http://web.xxxxxx.com:8080/</address.img>
                <address.um>http://${address.project}:8080/sondoon-um/</address.um>
                <address.um.sociaty>http://${address.project}:8080/sondoon-um/sociaty</address.um.sociaty>

                <sms.model>1</sms.model>
                <sms.account>N54xxxxxx</sms.account>
                <sms.password>isDmwxxxxxx</sms.password>
                <sms.url>http://smssh1.253.com/msg/send/json</sms.url>

                <push.model>true</push.model>
                <project.model>1</project.model>
            </properties>
        </profile>
    </profiles>

当你配置好这些信息的时候,打开右边的Maven Projects栏目,如果不知道怎么打开,可以左上角View——>Tool Windows——>Maven Projects。
这里写图片描述
打开Maven Projects栏目后,可以看到Profiles配置,展开后可以看见我们刚才配置的几个环境信息:
这里写图片描述
到这一步之后,只要勾选了哪个配置,当你编译打包的时候,maven就会为你使用你所勾选的那一套配置信息。当你没有勾选的时候,这里会有一个默认配置:

<activation>
    <activeByDefault>true</activeByDefault>
</activation>

比如在本地调试配置加上默认选择这一套配置信息,即你不勾选任何配置的时候,会默认使用本地调试这一套配置信息:
这里写图片描述
我们配置好这个pom.xml后,哪里需要使用可直接调用里面的配置信息即可,例如,properties文件调用配置信息:
这里写图片描述
到这里,基本配置工作已经做完,其他地方若有需要用到配置信息的,直接使用properties文件的配置即可。
如若需要发布代码到其他环境,只需要轻轻松松勾选所需要的环境配置信息即可编译打包上传发布,极大的避免了因为环境不同需要修改配置信息的工作量,也方便管理配置信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

表弟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值